当前位置: 代码迷 >> ASP.NET >> []gridview启用编辑功能
  详细解决方案

[]gridview启用编辑功能

热度:4078   发布时间:2013-02-25 00:00:00.0
[在线等]gridview启用编辑功能
界面代码
C# code
 <asp:TemplateField HeaderText="数量">           <ItemTemplate>               <asp:Label ID="lblcounts0" runat="server" Text='<%# Bind("hm_counts") %>'></asp:Label>           </ItemTemplate>           <EditItemTemplate>               <asp:TextBox ID="txtcounts" Width="60" runat="server"                Text='<%# Bind("hm_counts") %>'></asp:TextBox>           </EditItemTemplate>           <ItemStyle HorizontalAlign="Center" Width="100px" />       </asp:TemplateField>


  后台代码
C# code
 //更新事件    protected void gvHTMX_RowUpdating(object sender, GridViewUpdateEventArgs e)    {        int hm_id = Convert.ToInt32(gvHTMX.DataKeys[e.RowIndex].Value);        //下面这个counts是文本框的值        int counts = Convert.ToInt32(((TextBox)gvHTMX.Rows[e.RowIndex].FindControl("txtcounts")).Text);        //下面这个numbers是原始数量        int numbers = Convert.ToInt32(((Label)gvHTMX.Rows[e.RowIndex].FindControl("lblcounts0")).Text);        string beiz = ((TextBox)gvHTMX.Rows[e.RowIndex].FindControl("txtmxbz")).Text;        for (int i = 0; i < list.Count; i++)        {            if (list[i].Hm_id == hm_id)            {                list[i].Hm_counts = counts;                list[i].Hm_beiz = beiz;            }                    }        this.gvHTMX.EditIndex = -1;        this.initGvHTMX();//刷新    }

  现在问题出在这个可编辑的文本框,我刚写完代码测试的时候,是可以正常编辑的,但是过了两天。。。这个counts得到的值一直是未改动的。比如,文本款显示的是2000。但是我这次到货只有1000,那我就编辑文本框。将2000改为1000,本来后台取出的值应该是1000猜对,可是我取出的为什么是2000这个固定值?在线求解,谢谢

------解决方案--------------------------------------------------------
楼主我也遇到过类似的最后是在 Page_Load中添加
if (!IsPostBack)
{
  
}
具体里面怎么写你可以自己查下msdn。
你先试下。
C# code
if (!IsPostBack){   int hm_id = Convert.ToInt32(gvHTMX.DataKeys[e.RowIndex].Value);        //下面这个counts是文本框的值        int counts = Convert.ToInt32(((TextBox)gvHTMX.Rows[e.RowIndex].FindControl("txtcounts")).Text);        //下面这个numbers是原始数量        int numbers = Convert.ToInt32(((Label)gvHTMX.Rows[e.RowIndex].FindControl("lblcounts0")).Text);        string beiz = ((TextBox)gvHTMX.Rows[e.RowIndex].FindControl("txtmxbz")).Text;        for (int i = 0; i < list.Count; i++)        {            if (list[i].Hm_id == hm_id)            {                list[i].Hm_counts = counts;                list[i].Hm_beiz = beiz;            }                    }        this.gvHTMX.EditIndex = -1;        this.initGvHTMX();//刷新}