[英]Get specific item from Repeater in code behind
我有一個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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.