[英]how to update data in SQL from Gridview moving from one Row to another in ASP,C#
我有一个网格视图,如下所示, GridView
当焦点转移到下一行时,我想根据文本框中输入的文本更新表格。 我怎样才能做到这一点?
我已经完成了页面索引更改中的编码,我对Web编程有点困惑,如何在ASP中使用C#实现这一点。
下面是我为页面索引更改而编写的代码。
ASP
<asp:GridView ID="GVItems" runat="server"
CssClass="table table-hover table-striped table-bordered" GridLines="None"
AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" OnPageIndexChanging="GVItems_PageIndexChanging" OnRowEditing="GVItems_RowEditing" OnSelectedIndexChanging="GVItems_SelectedIndexChanging">
<AlternatingRowStyle BackColor="#CCCCCC" BorderStyle="None" />
<Columns>
<asp:BoundField DataField="UNIQ" HeaderText="UNIQ" />
<asp:BoundField DataField="store" HeaderText="STORE" />
<asp:BoundField DataField="MQty" HeaderText="Modified Qty" />
<asp:TemplateField HeaderText="Edit MQty" >
<ItemTemplate >
<asp:TextBox ID="txtUpdatedQty" runat="server" Text="" Width="40" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle CssClass="cursor-pointer" />
<PagerStyle HorizontalAlign="Right" CssClass="pagination-ys" />
</asp:GridView>
C#
protected void GVItems_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
UpdateRecvQty();
GVItems.PageIndex = e.NewPageIndex;
this.BindGrid();
}
private void UpdateRecvQty()
{
foreach (GridViewRow row in GVItems.Rows)
{
if (((TextBox)row.FindControl("txtUpdatedQty")).Text != "")
{
uniqID = row.Cells[0].Text;
qty = ((TextBox)row.FindControl("txtUpdatedQty")).Text;
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
con.Open();
string query = "UPDATE [dbo].[Tbl_Order] SET MQty = @qty where UNIQU=@uniqID";
cmd.CommandText = query;
cmd.Parameters.AddWithValue("@qty", qty);
cmd.Parameters.AddWithValue("@uniqID", uniqID);
cmd.ExecuteNonQuery();
}
}
}
为什么不使用文本框的textChanged事件并在每次用户编辑文本框而不是在结尾循环时更新值?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.