从代码背后的中继器获取特定项目
本文关键字:项目 获取 中继器 代码 背后 | 更新日期: 2024-09-27 02:49:15
我有一个ASP.NET WebForms项目,它显示通过Repeater从数据库读取的数据。中继器的代码如下:
<asp:Repeater ID="repRMAproduct" runat="server">
<ItemTemplate>
<tr>
<td>
<%# Eval("Description") %>
</td>
<td>
<%# Eval("Qty") %>
</td>
<td>
<asp:TextBox ID="tbNewQty" runat="server"></asp:TextBox>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
我想要的是用户只在他想要输入的行上输入一个新的数量。然后,当他点击保存按钮时,我可以阅读这些新的数量及其相关的描述。
在MVC中,我应该使用jQuery构建URL并将其传递给Controller。但在WebForms中,它似乎不那么直观。我该何去何从?
在保存按钮点击事件处理程序中,您可以循环所有项目并使用FindControl
:获取TextBox
foreach(RepeaterItem item in repRMAproduct.Items)
{
TextBox tbNewQty = (TextBox) item.FindControl("tbNewQty");
string newQuantity = tbNewQty.Text.Trim();
int quantity;
if(int.TryParse(newQuantity, out quantity))
{
SaveNewRmaQuantity(product, quantity);
};
}
如果你想用Label
来描述你的产品,你可以用FindControl("LblDescriptionId")
来获取它,并将它的Text
传递给SaveNewRmaQuantity
。您也可以使用不可见的控件(Visible=false)
,例如Label
)来存储ProductId
。