我在一个更新面板中放置了一个treeView,在一个更新面板中放置了每个视图,就像这样
<UpdatePanel id="UP1">
<ContentTemplate>
<TreeView/>
</ContentTemplate>
</UpdatePanel>
<MultiView>
<UpdatePanel id="UP2">
<View1/>
</UpdatePanel>
现在,我想知道如何确保当我单击TreeView的任何节点时,应该显示相应的视图
解决该问题的另一种方法是,如果您具有Treeview的click事件的代码,则从背后的代码中调用UP2.Update()。 请记住,UP2需要将其RenderMode设置为Conditional才能起作用。 希望能帮助到你
将AsyncPostBackTrigger添加到第二个updatePanel,以便在触发TreeView Click事件时对其进行更新。
<Asp:UpdatePanel id="UP2">
<View1/>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TreeView1" EventName="Click" />
</Triggers>
</Asp:UpdatePanel>
好,这是一个有效的示例。
标记:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<table style="width: 100%;">
<tr>
<td>
<asp:UpdatePanel ID="upTreeView" runat="server">
<ContentTemplate>
<asp:TreeView ID="TreeView1" runat="server"
onselectednodechanged="TreeView1_SelectedNodeChanged">
<Nodes>
<asp:TreeNode Text="GrandFather" Value="GrandFather">
<asp:TreeNode Text="Father" Value="Father">
<asp:TreeNode Text="Son" Value="Son"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
</ContentTemplate>
</asp:UpdatePanel>
</td>
<td>
<asp:UpdatePanel ID="upView" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TreeView1"
EventName="SelectedNodeChanged" />
</Triggers>
</asp:UpdatePanel>
</td>
</tr>
</table>
后面的代码:
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
Label1.Text = TreeView1.SelectedValue;
}