两种方法

1.TextBox 绑定TextChanged 并设置AutoPostBack ="true" ,如果不设置AutoPostBack ="true"则不会触发TextChanged事件,然后在对应的方法里面循环Repeater查找改变项

 

部分代码

<ItemTemplate >
    <tr>
        <td style ="width :9%;"><%#Eval("Date")%> <asp:HiddenField ID ="hfkey" runat ="server" Value ='<%#Eval("ID")%> ' /></td>
        <td style ="width :9%;"><%#Eval("FBASalesDays")%></td>
        <td style ="width :9%;"><asp:TextBox ID ="txtUPSShipQty"  runat="server" Text ='<%#Eval("UPSShipQty")%>' AutoPostBack ="true"   OnTextChanged ="btnCal_Click" ></asp:TextBox> </td>
    </tr>
    </ItemTemplate>

 

后台部分代码

protected void btnCal_Click(object sender, EventArgs e)
        {
            
            foreach (RepeaterItem item in rpdList.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    HiddenField hfkey = item.FindControl("hfkey") as HiddenField;
                    
                    TextBox txtUPSShipQty = item.FindControl("txtUPSShipQty") as TextBox;
                   
                    DataRow[] rows = dt.Select("ID ='" + hfkey.Value + "'");

                    if (rows != null && rows.Length > 0)
                    {
                       
                        if (rows[0]["UPSShipQty"].ToString().Trim() != txtUPSShipQty.Text.Trim())
                        {
                            rows[0]["UPSShipQty"] = txtUPSShipQty.Text.Trim();

                            CalFBAShipQty2(dt, 3, "UPSShipQty", hfkey.Value.Trim());
                            break;
                        }
                                        
                    }
                }
            }
            rpdList.DataSource = dt;
            rpdList.DataBind();
        }
View Code

相关文章: