2012-03-31 16 views
1

Ich habe diesen Code und muss wissen, welche Checkboxen im Code hinterAusgewählte Checkboxen im Repeater finden

sind Kann mir jemand helfen?

<asp:Repeater ID="ParentRepeater" runat="server" OnItemDataBound="ParentRepeater_ItemDataBound"> 
      <ItemTemplate> 
       <label> 
        <%# Eval("TeacherName")%> 
       </label> 
       <br /> 
       <asp:Repeater ID="ChildRepeater" runat="server"> 
        <ItemTemplate> 
         <label> 
          <input type="checkbox" id="students" runat="server" /><%# Eval("StudentName")%> 
         </label> 
        </ItemTemplate> 
       </asp:Repeater> 
      </ItemTemplate> 
     </asp:Repeater> 

Antwort

1
  • Schleife durch Ihre ParentRepeater Artikel
  • das Kind Repeater in jedem Artikel finden, und eine Schleife durch das ist Artikel
  • das Kontrollkästchen Suchen und prüfen, ob seine
  • Wenn sein geprüft, Antwort geprüft. schreiben ltlStudentName in demselben Artikel
For each item as repeateritem in ParentRepeater.Items 
    For each item2 as repeateritem in ctype(item.findcontrol("ChildRepeater"),repeater).items 
     if ctype(item2.findcontrol("students"),checkbox) 
     response.write(ctype("ltlStudentName"),literal).text) 
     end if 
    next 
Next 

Und eine Zeile Ihres Markup ändern:

<input type="checkbox" id="foods" runat="server" /><asp:literal id="ltlStudentName" runat="server" text='<%# Eval("StudentName")%>' /> 
+0

sorry ich mein Freund dies tun, ändern aber das Steuerelement ist null foreach (RepeaterItem Element in ParentRepeater.Items) { Repeater rep = ((Repeater) item.FindControl ("ChildRepeater")); foreach (RepeaterItem item2 in rep.Items) { var ch = (HtmlInputCheckBox) (item2.FindControl ("Studenten")); if (ch! = Null && ch.Checked == wahr) { Response.Write (ch.Value.ToString()); } } } – Developer

+0

@Developer Hatten Sie die Checkbox ID geändert? Aktualisiert Antwort – Curt

+0

ich das tun: foreach (RepeaterItem Artikel in ParentRepeater.Items) { Repeater rep = ((Repeater) item.FindControl ("ChildRepeater")); foreach (RepeaterItem item2 in rep.Items) { var chkBox = item2.FindControl ("Schüler") als HtmlInputCheckBox; } } aber alle checkboxs.Checked = false Ich weiß nicht warum – Developer

0

dies ist der letzte Versuch zu lösen und alle checkbox.Checked nicht alle gleich falsch

foreach (RepeaterItem item in ParentRepeater.Items) 
      { 
       Repeater rep = ((Repeater)item.FindControl("ChildRepeater")); 

       foreach (RepeaterItem item2 in rep.Items) 
       { 
        var chkBox = item2.FindControl("students") as HtmlInputCheckBox; 

       } 
      } 


<asp:Repeater ID="ParentRepeater" runat="server" OnItemDataBound="ParentRepeater_ItemDataBound"> 
      <ItemTemplate> 
       <label> 
        <%# Eval("TeacherName")%> 
       </label> 
       <br /> 
       <asp:Repeater ID="ChildRepeater" runat="server"> 
        <ItemTemplate> 
         <label> 
          <input type="checkbox" id="students" runat="server" /><asp:literal id="ltlStudentName" runat="server" text='<%# Eval("StudentName")%>' /> 
         </label> 
        </ItemTemplate> 
       </asp:Repeater> 
      </ItemTemplate> 
     </asp:Repeater>