<asp:GridView ID="gvshow" runat="server" OnRowCancelingEdit="gvshow_RowCancelingEdit" OnRowUpdating="gvshow_RowUpdating"  OnRowDeleting="gvshow_RowDeleting"  OnRowEditing="gvshow_RowEditing">
             <Columns>
             <asp:CommandField HeaderText="编辑" ShowEditButton="True" ControlStyle-Width="40" />
             <asp:CommandField HeaderText="删除" ShowDeleteButton="True" ControlStyle-Width="40"/>
            
           </Columns>
        </asp:GridView>
 protected void gvshow_RowEditing(object sender, GridViewEditEventArgs e)
        {
            gvshow.EditIndex = e.NewEditIndex;
            bind();
        }
protected void gvshow_RowUpdating(object sender, GridViewUpdateEventArgs e)
         {
            //一些代码
            gvshow.EditIndex = -1;
            bind();
         }

解决方案 »

  1.   

    我怎么看也没发现更新函数写在那个地方
    protected void gvshow_RowEditing(object sender, GridViewEditEventArgs e)
      {
      gvshow.EditIndex = e.NewEditIndex;
      bind();
      }
    这个编辑事件里有更新操作吗?
      

  2.   

    protected void gvshow_RowUpdating(object sender, GridViewUpdateEventArgs e)
      {
      //一些代码
      gvshow.EditIndex = -1;
      bind();
      }
    这个是更新函数啊
      

  3.   

    protected void gvshow_RowEditing(object sender, GridViewEditEventArgs e)
      {
      gvshow.EditIndex = e.NewEditIndex;  //这里应该是可以到的  bind();  //看方法名字应该是重新绑定GV了,这时会重新RowBinding、RowBound事件,然后模板会从EditTemplate会回到默认的ItemTemplate
      }//由于已经跳出了编辑状态,所以无视RowUpdating
    protected void gvshow_RowUpdating(object sender, GridViewUpdateEventArgs e)
      {
      //一些代码
      gvshow.EditIndex = -1;
      bind();
      }