2009-01-29 8 views
1

Je l'ai placé dans un treeView un panneau de mise à jour et chaque vue dans une mise à jour Panel quelque chose comme çala communication entre UpdatePanels ASP.Net

 

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

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

Maintenant, je veux savoir comment je peux vous assurer Lorsque je clique sur tout nœud de TreeView Les vues respectives doivent s'afficher

Répondre

1

Ajoutez un AsyncPostBackTrigger au deuxième updatePanel, afin qu'il soit mis à jour lorsque l'événement TreeView Click est déclenché.

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

OK, voici un exemple de travail.

Le balisage:

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

Le code derrière:

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

Je viens d'ajouter un exemple de travail. –

2

Une autre façon d'aborder ce serait d'appeler UP2.Update() du codebehind si vous avez le code pour l'événement clic de la Treeview. N'oubliez pas que UP2 doit avoir son RenderMode sur Conditionnel pour que cela fonctionne. J'espère que ça aide

+0

Voici la réponse simpliste et la meilleure à ce problème. Je donnerais le même conseil bien que le réglage du mode conditionnel ne soit pas requis pour que cela fonctionne. – Middletone

Questions connexes