Accessing Textboxes in Repeater Control

前端 未结 3 881
栀梦
栀梦 2020-12-14 16:58

All the ways I can think to do this seem very hackish. What is the right way to do this, or at least most common?

I am retrieving a set of images from a LINQ-to-SQL

相关标签:
3条回答
  • 2020-12-14 17:26

    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.

    0 讨论(0)
  • 2020-12-14 17:29

    .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 :) )

    0 讨论(0)
  • 2020-12-14 17:34

    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");
    
    0 讨论(0)
提交回复
热议问题