Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting the databound value from repeater control in asp.net

As a follow up to my question Looping through a repeater control to get values of Textbox in asp.net If user has entered a a quantity in the textbox, I want to get the corresponding ProductID value from the repeater control:

<asp:Repeater ID="rptRequestForm" runat="server">
                    <HeaderTemplate>
                            <table border="0" width="100%">
                                <tr>
                                    <td style="width:50%" class="TextFontBold"><asp:Label runat="server" ID="Label1" Text="Supply Name"></asp:Label></td>
                                    <td style="width:25%" class="TextFontBold"><asp:Label runat="server" ID="Label2" Text="Quantity"></asp:Label></td>
                                    <td style="width:25%" class="TextFontBold"><asp:Label runat="server" ID="Label3" Text="Price (ea.)"></asp:Label></td>
                                </tr>
                            </table>
                    </HeaderTemplate>
                        <ItemTemplate>
                            <table border="0" width="100%">
                                <tr>
                                    <td style="width:50%" class="TextFont"><asp:Label ID="lblProductName" Text="<%#Trim(Eval("Product_Title"))%>" ><%#Trim(Eval("Supplie_title"))%></asp:Label></td>
                                    <td style="width:25%"><asp:TextBox ID="txtBox" runat="server" Width="30%" onblur="Javascript:numberonly(this)"></asp:TextBox></td>
                                    <td style="width:25%" class="TextFont"><span><%#Trim(FormatCurrency(Eval("Price")))%></span></td>
                                </tr>
                            </table>
                        </ItemTemplate>
                    </asp:Repeater> 

My codebehind is:

For Each item As RepeaterItem In rptRequestForm.Items
                txtField = item.FindControl("txtBox")
                If Not IsNothing(txtField) Then
                    j += 1
                    strText = strText & ", " & txtField.Text
                End If
Next

I am using FindControl to loop through the textbox (to see if user has entered a valid quantity). How can I get the value of the corresponding ProductID ?

like image 520
Frank Avatar asked Nov 22 '25 13:11

Frank


1 Answers

Add a label to your ItemTemplate, like this:

<td style="width:50%" class="TextFont"><asp:Label ID="lblProductName" runat="server"><%#Trim(Eval("Product_Title"))%></asp:Label></td>

And in your code behind, find it like this:

foreach (RepeaterItem item in Repeater1.Items)
{
    TextBox txtField = (TextBox)item.FindControl("txtBox");

    //extract value from textbox
    int Quantity = Convert.ToInt32(((TextBox)item.FindControl("txtBox").Text);

    //extract the value from the label
    string productName = ((Label)item.FindControl("lblProductName")).Text;
}
like image 198
James Johnson Avatar answered Nov 25 '25 02:11

James Johnson



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!