从代替

时间:2016-04-18 12:47:10

标签: c# asp.net .net webforms

我有一个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中似乎不那么直观。我从哪里开始?

1 个答案:

答案 0 :(得分:2)

在您的保存按钮点击事件处理程序中,您可以循环所有项目,并使用TextBox获取FindControl

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