简体   繁体   English

在UpdatePanels ASP.Net之间进行通信

[英]Communicate between UpdatePanels ASP.Net

I have placed a treeView in One Update Panel and Each View in one update Panel something like this 我在一个更新面板中放置了一个treeView,在一个更新面板中放置了每个视图,就像这样


   <UpdatePanel id="UP1">
     <ContentTemplate>
       <TreeView/>
     </ContentTemplate>
  </UpdatePanel>

   <MultiView>
    <UpdatePanel id="UP2">
      <View1/>
     </UpdatePanel>

Now I want to know how I can make sure When I click any node of TreeView respective Views should get displayed 现在,我想知道如何确保当我单击TreeView的任何节点时,应该显示相应的视图

Another way of approaching it would be to call UP2.Update() from the codebehind if you have code for the click event of the Treeview. 解决该问题的另一种方法是,如果您具有Treeview的click事件的代码,则从背后的代码中调用UP2.Update()。 Remember, UP2 needs to have its RenderMode set to Conditional for this to work. 请记住,UP2需要将其RenderMode设置为Conditional才能起作用。 Hope it helps 希望能帮助到你

Add an AsyncPostBackTrigger to the second updatePanel, so it gets updated when the TreeView Click event is fired. 将AsyncPostBackTrigger添加到第二个updatePanel,以便在触发TreeView Click事件时对其进行更新。

<Asp:UpdatePanel id="UP2">
   <View1/>
   <Triggers>
      <asp:AsyncPostBackTrigger ControlID="TreeView1" EventName="Click" />
   </Triggers>
</Asp:UpdatePanel>

OK, Here Is a working Example. 好,这是一个有效的示例。

The Markup: 标记:

    <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> 

The code behind: 后面的代码:

    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        Label1.Text = TreeView1.SelectedValue;
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM