Accessing Textboxes in Repeater Control Accessing Textboxes in Repeater Control asp.net asp.net

Accessing Textboxes in Repeater Control


Have you tried something like following on the button click:-

foreach (RepeaterItem item in Repeater1.Items){      TextBox txtName= (TextBox)item.FindControl("txtName");      if(txtName!=null)      {      //do something with txtName.Text      }      Image img= (Image)item.FindControl("Img");      if(img!=null)      {      //do something with img      }}

/* Where txtName and Img are the Ids of the textbox and the image controls respectively in the repeater.*/

Hope this helps.


.aspx

        <asp:Repeater ID="rpt" runat="server" EnableViewState="False">        <ItemTemplate>                <asp:TextBox ID="txtQty" runat="server" />         </ItemTemplate>        </asp:Repeater>

.cs

        foreach (RepeaterItem rptItem in rpt.Items)        {            TextBox txtQty = (TextBox)rptItem.FindControl("txtQty");            if (txtQty != null) { Response.Write(txtQty.Text); }                  }

Be sure to add EnableViewState="False" to your repeater, otherwise you will get empty string. (That wasted my time, dont waste yours :) )


On postback, you can iterate over the collection of RepeaterItems in repeater.Items. You could then retrieve each TextBox with code such as

TextBox tbDemo = (TextBox)rptr.Items[index].FindControl("textBox");