C# 如何将项目模板文本框从gridview保存到数据库
我有一个gridview,其中包含两个项目模板1-checkbox 2-textbox,如下所示:C# 如何将项目模板文本框从gridview保存到数据库,c#,asp.net,ado.net,C#,Asp.net,Ado.net,我有一个gridview,其中包含两个项目模板1-checkbox 2-textbox,如下所示: <asp:GridView ID="Warehouse_gv" runat="server" AllowPaging="True" align="center" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="Warehouse_gv_SqlDS"
<asp:GridView
ID="Warehouse_gv"
runat="server"
AllowPaging="True"
align="center"
AllowSorting="True" AutoGenerateColumns="False"
DataSourceID="Warehouse_gv_SqlDS"
onselectedindexchanged="Warehouse_gv_SelectedIndexChanged"
Width="230px" PageSize="700">
<Columns>
<asp:CommandField ShowDeleteButton="False" ShowEditButton="True" />
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
</ItemTemplate>
<HeaderTemplate>
<input id="chkAll"
önclick="javascript:SelectAllCheckboxes(this);"
runat="server" type="checkbox" />
</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Line Number"
HeaderText="Line Number" ReadOnly="True"
SortExpression="Line Number" />
<asp:BoundField DataField="Reference"
HeaderText="Reference" ReadOnly="True"
SortExpression="Reference" />
<asp:BoundField DataField="QTY" HeaderText="QTY"
SortExpression="QTY" />
<asp:TemplateField HeaderText="EditQTY">
<ItemTemplate>
<asp:TextBox ID ="test" runat="server" />
</ItemTemplate>
<HeaderTemplate>
EditQTY
</HeaderTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
No data could be find!
</EmptyDataTemplate>
</asp:GridView>
编辑数量
找不到任何数据!
此网格有6列1-编辑按钮2-复选框(第一项模板)3-行号4-参考5-数量6-编辑数量(第二项模板)。
但当我想将数据从这个gridview保存到另一个数据库时,对于我放在Item template字段数据中的textbox字段(EditQTY列),这是我的代码:
protected void SAVE_btn_Click(object sender, EventArgs e)
{
int C = 0;
for (int i = 0; i < Warehouse_gv.Rows.Count; i++)
{
GridViewRow row = Warehouse_gv.Rows[i];
bool isChecked = ((CheckBox)row.FindControl("chkSelect")).Checked;
if (isChecked)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(Class1.CnnStr);
cmd.CommandText = "insert into WarehousePart values (@Reference,@EditQty)";
cmd.Connection.Open();
cmd.Parameters.AddWithValue("@Reference", Warehouse_gv.Rows[i].Cells[3].Text);
cmd.Parameters.AddWithValue("@EditQty", Warehouse_gv.Rows[i].Cells[5].Text);
cmd.ExecuteNonQuery();
cmd.Connection.Close();
C = C + 1;
}
}
}.
protectedvoid保存\u btn\u单击(对象发送方,事件参数e)
{
int C=0;
对于(int i=0;i
您必须使用FindControl
方法来获取ID为test
的TextBox
的引用
TextBox test=row.FindControl("test")) as TextBox;
if(test!=null){
//
}
@凯蒂-我猜。您已经在页面加载中找到了数据绑定代码。请将此代码包装在
IsPostBack
块中。我知道了,非常感谢您的帮助!!!我在if(test!=null)中使用了cmd.Parameters.AddWithValue(“@OrderQTY”,test.Text),而不是我的上一个代码,它可以工作!!