Få data fra alle rows i en repeater ved klik på én knap
Hej, jeg har et problem med en repeater.Problemet er at få .Text fra alle tekstbokse i repeateren med klik på én knap.
På hver row der laves med repeater'en, er der 5 tekstbokse. Antallet af rows er varierende. Data fra tekstbokse på alle rows skal gemmes til en database med tryk på én knap. Hvis jeg placerer knappen i ItemTemplate i repeater'en og bruger FindControl, så kan jeg få data fra de 5 tekstbokse fra fx row 2 med tryk på knap fra row 2. Men jeg vil have .Text fra alle tekstbokse i alle rows med klik på én knap.
Lidt kode eksempler:
<ItemTemplate>
<tr>
<td align="right">
<asp:TextBox ID="TextBox1" runat="server" Width="65" Text='<%#DataBinder.Eval(Container.DataItem, "data1_ppl")%>'></asp:TextBox>
<br />
<asp:Button ID="btn_next_Click" runat="server" OnClick="btn_next_Click" Text="Next" />
</td>
</tr>
</ItemTemplate>
I stedet for i hver row, så skal knappen placeres til sidst, fx i FooterTemplate.
Code behind:
Med FindControl på knappen click-event får jeg data fra den row knappen er i:
Button btn = sender as Button;
TextBox tb = btn.Parent.FindControl("TextBox1") as TextBox;
Med et loop kører jeg repeaterens rows igennem og gemmer til DB:
for (int i = 1; i < number_controls; i++)
{
OleDbCommand cmd2 =
new OleDbCommand("UPDATE tabel SET [data1_ppl]='" + TextBox1.Text + "' WHERE [id_ppl] = " + id + "", conn); //her kun med 1 textbox
cmd2.ExecuteNonQuery();
}
