2013-05-22 4 views
8

Lorsque l'utilisateur clique sur le bouton "Enregistrer les modifications", j'ai besoin d'obtenir les valeurs de toutes les cases à cocher dans un répéteur. Si je ne peux pas obtenir les valeurs, l'identifiant est également correct.Afficher les valeurs de toutes les cases dans le répéteur

maître Code page:

<ul class="bulletless"> 
    <asp:Repeater runat="server" ID="newsletter_repeater"> 
     <ItemTemplate> 
      <li><input type="checkbox" value='<%#Eval("id")%>' id='<%#Eval("id")%>'/> <%#Eval("displayTitle")%></li> 
     </ItemTemplate> 
    </asp:Repeater> 
</ul> 

<asp:Button runat="server" CssClass="editButtonOff" Text="Save Changes" ID="SaveNewsletterChanges" OnClick="SaveNewsletterChanges_submit" /> 

Voici mon code derrière:

protected void SaveNewsletterChanges_submit(object sender, EventArgs e) 
{ 
    //the count of the items in the repeater is 2 
    //but the aItem is null 
     foreach(RepeaterItem aItem in newsletter_repeater.Items){ 
     string myId = aItem.ID; 
    } 
} 

Qu'est-ce que je fais mal?

Répondre

9

D'abord, vous devez ajouter runat="server" à votre case à cocher. Deuxièmement, vous devez attribuer à la case un identifiant qui ne change pas. Le répéteur se chargera de faire l'identifiant unique côté client: vous accédez id="chkDisplayTitle"

Troisièmement, les éléments dans le répéteur comme ceci:

foreach (RepeaterItem item in CourseAreaRptr.Items) 
     { 
      HtmlInputCheckBox chkDisplayTitle = (HtmlInputCheckBox)item.FindControl("chkDisplayTitle"); 
      if (chkDisplayTitle.Checked) 
      { 
       //HERE IS YOUR VALUE: chkAddressSelected.Value 
      } 
     } 
Questions connexes