我在页面上有一个树视图,我想在某些事件上更新/添加节点 - 例如,我有一个下拉列表,我有复选框列表等。 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级添加一个且只有一个子节点。
我该怎么做
答案 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));
}