2010-01-13 8 views
0

Je développe une application Web ASP.NET avec WebForms et C#.Prévention des contrôles de déchargement chargés dynamiquement

J'ai cette page ASPX:

<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
    <div id="divBody"> 
     <div id="divHeader"> 
      <asp:Button ID="Edit" runat="server" Text="Editar" onclick="Edit_Click" /> 
     </div> 
     <div id="leftColumn"> 
      <asp:UpdatePanel ID="UpdatePanelLeft" runat="server"> 
       <ContentTemplate> 
        <asp:Label ID="TryText" runat="server"></asp:Label> 
        <asp:TreeView ID="DestinationTree" runat="server" ImageSet="Simple"> 
         <ParentNodeStyle Font-Bold="False" /> 
         <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" /> 
         <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" 
          HorizontalPadding="0px" VerticalPadding="0px" /> 
         <Nodes> 
          <asp:TreeNode Text="Raiz" Value="Raiz"> 
           <asp:TreeNode Text="Destino_1" Value="Destino_1"> 
            <asp:TreeNode Text="Punto_1_1" Value="Punto_1_1"> 
             <asp:TreeNode Text="Contenido_1_1_1" Value="Contenido_1_1_1"></asp:TreeNode> 
             <asp:TreeNode Text="Contenido_1_1_2" Value="Contenido_1_1_2"></asp:TreeNode> 
            </asp:TreeNode> 
            <asp:TreeNode Text="Punto_1_2" Value="Punto_1_2"> 
             <asp:TreeNode Text="Contenido_1_2_1" Value="Contenido_1_2_1"></asp:TreeNode> 
            </asp:TreeNode> 
           </asp:TreeNode> 
           <asp:TreeNode Text="Destino_2" Value="Destino_2"> 
            <asp:TreeNode Text="Punto_2_1" Value="Punto_2_1"></asp:TreeNode> 
            <asp:TreeNode Text="Punto_2_2" Value="Punto_2_2"> 
             <asp:TreeNode Text="Contenido_2_2_1" Value="Contenido_2_2_1"></asp:TreeNode> 
            </asp:TreeNode> 
           </asp:TreeNode> 
          </asp:TreeNode> 
         </Nodes> 
         <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" 
          HorizontalPadding="0px" NodeSpacing="0px" VerticalPadding="0px" /> 
        </asp:TreeView> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </div> 
     <div id="rightColumn"> 
      <asp:UpdatePanel ID="UpdatePanelRight" runat="server"> 
       <ContentTemplate> 
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
       </ContentTemplate> 
       <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="Edit" EventName="Click" /> 
       </Triggers> 
      </asp:UpdatePanel> 
     </div> 
    </div> 
    </form> 
</body> 

Il est un en-tête avec deux colonnes: la colonne de gauche il y a un TreeView, et à gauche il n'y a rien (maintenant il y a une étiquette pour essayer la chose que je veux faire).

Lorsque l'utilisateur sélectionne un nœud sur l'arborescence, cliquez sur le bouton Modifier. Le code pour l'événement click est:

protected void Edit_Click(object sender, EventArgs e) 
{ 
    if ((DestinationTree.SelectedNode != null) && 
     (DestinationTree.SelectedNode.Depth > 0)) 
    { 
     BaseControl baseControl = new BaseControl(); 
     UpdatePanelRight.ContentTemplateContainer.Controls.Clear(); 

     switch (DestinationTree.SelectedNode.Depth) 
     { 
      case 1: 
       baseControl = (BaseControl)LoadControl("~/DynamicControls/Control1.ascx"); 
       break; 
      case 2: 
       baseControl = (BaseControl)LoadControl("~/DynamicControls/Control2.ascx"); 
       break; 
      case 3: 
       baseControl = (BaseControl)LoadControl("~/DynamicControls/Control3.ascx"); 
       break; 
     } 

     UpdatePanelRight.ContentTemplateContainer.Controls.Add(baseControl); 
    } 
} 

En fonction de la profondeur sélectionnée par le noeud, un contrôle personnalisé sera chargé dynamiquement. Cela fonctionne, mais lorsque l'utilisateur sélectionne un autre nœud sur treeview, l'étiquette d'origine est rechargée sur la colonne de droite.

Comment puis-je empêcher cela?

Répondre

0

Les contrôles dynamiques doivent être recréés à chaque publication, cet article Here est un bon lien sur la façon de maintenir les contrôles dynamiques et leur état.

+0

Hé, vous avez oublié le lien vers l'article. – VansFannel

Questions connexes