I have a Repeater control that adds rows to a table. The data inside each cell comes from a Datatable that is bound to the repeater.
Simplified Example:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem, "PartNumber")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "Quantity")%>
</td>
</tr>
</ItemTemplate>
In code behind I would like to be able to loop through each repeater row and get the value for Quantity for that row.
So far all I have is:
foreach (RepeaterItem ri in Repeater1.Items)
{
}
You could use labels:
<td>
<asp:Label ID="lblPartNumber" runat="server" Text='<%#Eval("PartNumber")%>' />
</td>
<td>
<asp:Label ID="lblQuantity" runat="server" Text='<%#Eval("Quantity")%>' />
</td>
And grab the values of the labels on the repeater OnItemDataBound event.
protected void repeater_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
foreach (Control c in e.Item.Controls)
{
if (c is Label)
{
// Grab label
Label lbl = c as Label;
String your_value = lbl.Text;
}
}
}