2008-11-21 8 views
1

J'ai le tableau suivantAjout panneau dynamique/contrôle

<td class="style2"> 
    <asp:DropDownList ID="DropDownList1" runat="server"> 
     <asp:ListItem>Location</asp:ListItem> 
     <asp:ListItem>Name</asp:ListItem> 
     <asp:ListItem>SSN</asp:ListItem> 
    </asp:DropDownList> 
    <asp:DropDownList ID="DropDownList2" runat="server"> 
     <asp:ListItem>LIKE</asp:ListItem> 
     <asp:ListItem>=</asp:ListItem> 
    </asp:DropDownList> 
    <br /> 
    <br /> 
</td> 
<td valign="bottom"> 
    <asp:Button ID="btnAdd" runat="server" Text="Add" /> 
</td> 

Lorsque vous cliquez sur btnAdd Je veux ajouter une autre ligne de ces filtres. Je suppose que je voudrais créer un panneau et avoir ces 3 contrôles et le bouton d'ajout créerait un nouveau panneau ou je crée tous les contrôles à la volée et puis les ajoute avec le code derrière.

:: Modifier Lorsque je clique sur btnAdd alors je veux ajouter une autre ligne en tant que telle

Avant btnAdd Cliquez

<td class="style2"> 
     <asp:DropDownList ID="DropDownList1" runat="server"> 
      <asp:ListItem>Location</asp:ListItem> 
      <asp:ListItem>Name</asp:ListItem> 
      <asp:ListItem>SSN</asp:ListItem> 
     </asp:DropDownList> 
     <asp:DropDownList ID="DropDownList2" runat="server"> 
      <asp:ListItem>LIKE</asp:ListItem> 
      <asp:ListItem>=</asp:ListItem> 
     </asp:DropDownList> 
     <br /> 
     <br /> 

    </td> 

Après btnAdd:

<td class="style2"> 
     <asp:DropDownList ID="DropDownList1" runat="server"> 
      <asp:ListItem>Location</asp:ListItem> 
      <asp:ListItem>Name</asp:ListItem> 
      <asp:ListItem>SSN</asp:ListItem> 
     </asp:DropDownList> 
     <asp:DropDownList ID="DropDownList2" runat="server"> 
      <asp:ListItem>LIKE</asp:ListItem> 
      <asp:ListItem>=</asp:ListItem> 
     </asp:DropDownList> 
     <br /> 
     <br /> 
    </td> 

<tr> 
<td class="style2"> 
     <asp:DropDownList ID="DropDownList1" runat="server"> 
      <asp:ListItem>Location</asp:ListItem> 
      <asp:ListItem>Name</asp:ListItem> 
      <asp:ListItem>SSN</asp:ListItem> 
     </asp:DropDownList> 
     <asp:DropDownList ID="DropDownList2" runat="server"> 
      <asp:ListItem>LIKE</asp:ListItem> 
      <asp:ListItem>=</asp:ListItem> 
     </asp:DropDownList> 
     <br /> 
     <br /> 
    </td> 
</tr> 

Répondre

0

Il serait plus facile pour montrer/cacher la troisième liste déroulante plutôt que de l'ajouter dynamiquement.

DropDownList3.Visible = true; 

Lorsque vous ajoutez dynamiquement vous obtenez des problèmes de viewstate si vous ne l'ajouter au bon moment (du cycle de vie de la page), ne vaut pas le problème si vous pouvez l'éviter.

Si vous devez alors faire votre ligne dans un contrôle utilisateur, et continuer à ajouter de nouvelles instances de cela. reload viewstate se produit après init et after load, donc assurez-vous que votre contrôle est chargé dans init idéalement sur toutes les publications.

+0

Trull: J'ai édité ma question – user38230

0

Vous pourriez faire quelque chose dans le code derrière lequel vos dropdowns sont visibles. En d'autres termes:

<td class="style2"> 
    <asp:DropDownList ID="DropDownList3" runat="server" Visible="false"> 
     <asp:ListItem>Location</asp:ListItem> 
     <asp:ListItem>Name</asp:ListItem> 
     <asp:ListItem>SSN</asp:ListItem> 
    </asp:DropDownList> 
    <asp:DropDownList ID="DropDownList4" runat="server" Visible="false"> 
     <asp:ListItem>LIKE</asp:ListItem> 
     <asp:ListItem>=</asp:ListItem> 
    </asp:DropDownList> 

Et votre code serait derrière cette en cas button_OnClick:

DropDownList3.Visible = true; 
DropDownList4.Visilbe = true; 

Et bien sûr, si vous faites ces derniers sur un UpdatePanel, il fera la transition plus agréable que l'actualisation de la page entière.

+0

GregD: J'ai édité ma question – user38230