扩展.NET TreeView CheckBox

时间:2011-05-13 16:53:20

标签: .net asp.net treeview

我有一个带有复选框的.NET TreeView控件。我希望能够在选中复选框时获取节点的值。基本上,这是一个电子邮件联系人树,当用户选择一个复选框时,我想拉取节点值(电子邮件地址)并将其放在文本框中。第二部分没问题,我只需要调用JS函数将电子邮件附加到文本框中。

因此,问题是如何使用JS从复选框中提取节点的值。除非有人有替代方法,否则我考虑将TreeView扩展为不包含普通复选框,而是包含可以存储值的复选框。注意:我有一个名为CheckBoxValue的现有控件,它将执行此操作。从根本上说,我的问题是如何扩展TreeView以包含它?我相信这将在CreateChildControls方法中,但会喜欢一些帮助。

有什么想法吗?

谢谢, 莱恩

1 个答案:

答案 0 :(得分:0)

如果您要存储的值是字符串,则可以使用TreeNode.Value来存储它。这是你可以参考的一个例子。

 <asp:TreeView ID="TreeView1" runat="server"  onclick=" __doPostBack('','');"
        ontreenodecheckchanged="TreeView1_TreeNodeCheckChanged">
    </asp:TreeView>

并加载树

        if (!IsPostBack)
        {
            TreeNode node = new TreeNode("RootNode");
            TreeView1.Nodes.Add(node);

            TreeNode childNode = new TreeNode("ChildNode");
            childNode.ShowCheckBox = true;
            childNode.Value = "foo@bar.com";
            node.ChildNodes.Add(childNode);
        }

并检查CheckChanged事件处理程序

    protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
    {
        TextBox1.Text = e.Node.Value;
    }