ASP.NET:每次都在特定级别添加树节点

时间:2012-12-17 12:56:16

标签: asp.net treeview

我在页面上有一个树视图,我想在某些事件上更新/添加节点 - 例如,我有一个下拉列表,我有复选框列表等。 Treeview已经定义了0级节点。 我想在dropdown_selectedIndexchanged事件中只添加一个节点作为节点0的子节点。 因为我正在这样做 -

aspx页面上的树视图

<asp:TreeView ID="tv1" runat="server">
   <Nodes>
       <asp:TreeNode Text="parent" Value="" ShowCheckBox="False"></asp:TreeNode>
   </Nodes>
</asp:TreeView>

.cs页面上的代码

dropdown_SelectedIndexChanged(object sender, EventArgs e)
{
   tv1.Nodes[0].ChildNodes.Add(new TreeNode(dropdown.SelectedIndex.Text.Trim)));
}

我看到问题,但不知道如何解决它。 问题是 - 我想在tv1 treeview的0级添加一个且只有一个子节点。

我该怎么做

1 个答案:

答案 0 :(得分:1)

由于dropdown的“AutoPostBack”属性设置为false,因此可能无法正常工作。仅当您将此属性设置为true时,才会触发事件处理程序。以下代码对我有用。

        <asp:DropDownList ID="dropdown" runat="server" AutoPostBack="True" OnSelectedIndexChanged="dropdown_SelectedIndexChanged">
            <asp:ListItem>One</asp:ListItem>
            <asp:ListItem>Two</asp:ListItem>
        </asp:DropDownList>
    <asp:TreeView ID="tv1" runat="server">
   <Nodes>

       <asp:TreeNode Text="parent" Value="" ShowCheckBox="False"></asp:TreeNode>
   </Nodes>
</asp:TreeView>

Code Behind(您可以直接或通过索引获取价值):

        protected void dropdown_SelectedIndexChanged(object sender, EventArgs e)
        {
            tv1.Nodes[0].ChildNodes.Clear();
            tv1.Nodes[0].ChildNodes.Add(new TreeNode(dropdown.SelectedValue));
        }