ASP.NET& JavaScript:获取树视图选中的项值

时间:2010-09-20 14:50:32

标签: javascript asp.net treeview

如何从javascript获取asp.net treeview的选定节点的值?

我有树:

<asp:TreeView ID="dtDivisions" runat="server" onclick="OnDivisionChecked(event);" ShowCheckBoxes="All" ShowLines="true">
</asp:TreeView>

我用下一个方法填写它:

private static void BindTreeViewNode(TreeView control, TreeNode parentNode)
{
  int parentId = parentNode == null ? -1 : Convert.ToInt32(parentNode.Value);
  var list = DictionariesDAO.GetListByParentId(DictionaryType.Divisions, parentId);

  foreach (var item in list)
  {
    TreeNode node = new TreeNode(item.Name, item.Id.ToString())
                                {
                                    ImageUrl = item.HasChilds ? "js/dtree/img/folder.gif" : "js/dtree/img/page.gif",
                                    NavigateUrl = item.Id.ToString(),
                                    SelectAction = TreeNodeSelectAction.None
                                };

    if (parentNode == null)
    {
      node.ImageUrl = "js/dtree/img/base.gif";
      control.Nodes.Add(node);
    }
    else
    {
      parentNode.ChildNodes.Add(node);
    }

    if (item.HasChilds)
    {
      BindTreeViewNode(control, node);
    }
  }
}

我需要在 OnDivisionChecked javascript方法中获取所选节点的值。 我尝试将它放在TreeView的 NavigationUrl 属性中,但没有成功。

例如:

var snode = document.getElementById(TreeNode.id.replace('CheckBox', '').replace('dtDivisionsn', 'dtDivisionst'));
document.getElementById('ctl00_PlaceHolderMain_hidDivisionsId').value = snode.href;

请帮忙! :)

2 个答案:

答案 0 :(得分:1)

希望以下链接可以解决您的问题:http://www.mikeborozdin.com/post/ASPNET-TreeView-and-Checkboxes.aspx

答案 1 :(得分:0)

这是我的解决方案,但可能不适合您的情况。但我想和你分享这个。这个想法非常简单,我将Tooltip的{​​{1}}设置为Treeview node并在我的Value代码中使用它。

js

然后是js:

var node = new TreeNode
{
    Text = "SOME_TEXT",
    Value = "VALUE",
    ToolTip = "VALUE"
};