0

我在页面上有一个树视图,我想在某些事件上更新/添加节点 - 例如,我有一个下拉列表,我有复选框列表等。树视图已经定义了级别 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 树视图的第 0 级添加一个且只有一个子节点。

我怎样才能做到这一点

4

1 回答 1

1

由于下拉菜单的“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>

后面的代码(您可以直接或通过索引获取值):

        protected void dropdown_SelectedIndexChanged(object sender, EventArgs e)
        {
            tv1.Nodes[0].ChildNodes.Clear();
            tv1.Nodes[0].ChildNodes.Add(new TreeNode(dropdown.SelectedValue));
        }
于 2012-12-17T13:22:34.613 回答