2013-05-22 28 views
8

Gdy użytkownik kliknie przycisk "Zapisz zmiany", muszę uzyskać wartości wszystkich pól wyboru w repeterze. Jeśli nie mogę uzyskać wartości, identyfikator jest również w porządku.Otrzymaj wartości wszystkich pól wyboru w repeateru

Główna strona kodowa:

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

Oto mój kod za:

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

Co robię źle?

Odpowiedz

9

Najpierw należy dodać runat="server" do swojego pola wyboru.

Po drugie, należy przypisać do pola wyboru identyfikator, który się nie zmienia. Powielacz zajmie dokonywania id stronie klienta wyjątkowy: id="chkDisplayTitle"

trzecie, dostęp do elementów w peryferyjnym tak:

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