我在编辑Gridview时,应该时我改变Textbox的值,然后得到它,再用update ,但是Textbox得值就是不变,始终时数据库里的。
string id = GridView_Result.DataKeys[e.RowIndex]["JLH"].ToString();
string jth = ((System.Web.UI.WebControls.TextBox)GridView_Result.Rows[e.RowIndex].FindControl("TextJTH")).Text;
string jj = ((System.Web.UI.WebControls.TextBox)GridView_Result.Rows[e.RowIndex].FindControl("TextSJJS")).Text;
string query = "update TB_JC_JTJBSJ set JTH='" + jth + "',SJJS ='"+jj+"' where au_id = '" +id + "'";
调试发现 jth和jj的值都不变,一直时数据库里得值,不管我在编辑里改什么。
前台我使用得模板
<asp:TemplateField HeaderText="A">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "~/Info.aspx?JTH="+Eval("JTH") %>'
Text='<%# Bind("JTH") %>'>规格型号</asp:HyperLink>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextJTH" runat="server" Text='<%# Bind("JTH") %>'></asp:TextBox>
</EditItemTemplate>
<HeaderStyle Width="9%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="B">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("JLH") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle Width="9%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="C">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("SJJS") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextSJJS" runat="server" Text='<%# Bind("SJJS") %>'></asp:TextBox>
</EditItemTemplate>
<HeaderStyle Width="9%" />
</asp:TemplateField>
你看一下你的page_load中的代码,设置几个断点跟中一下执行顺序!