首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

GridView更新有关问题

2012-02-19 
GridView更新问题我在使用GridView更新,输入完更新的数据,点击更新,输入完的数据全变成了输入前的数据了,c

GridView更新问题
我在使用GridView更新,输入完更新的数据,点击更新,输入完的数据全变成了输入前的数据了,cs中传的值也都是更新前的数据,请帮帮我,谢谢


<asp:GridView   ID= "GridView1 "   runat= "server "   AllowPaging= "True "   AllowSorting= "True "   AutoGenerateColumns= "False "   OnPageIndexChanging= "GridView1_PageIndexChanging "   OnRowEditing= "GridView1_RowEditing "
                  OnRowCancelingEdit= "GridView1_RowCancelingEdit "   OnRowUpdating= "GridView1_RowUpdating "   DataKeyNames= "ST_Teacher_id ">
                        <Columns>
                                <asp:HyperLinkField   DataNavigateUrlFields= "ST_Teacher_id "   DataNavigateUrlFormatString= "ST_userlist.aspx?ST_Teacher_id={0} "
                                        DataTextField= "ST_Teacher_id "   HeaderText= "教师号 "   />
                                <asp:BoundField   DataField= "ST_Teacher_name "   HeaderText= "姓名 "   />
                                <asp:BoundField   DataField= "ST_Teacher_college "   HeaderText= "学院 "   />
                                <asp:CommandField   ShowEditButton= "True "   />
                          <asp:TemplateField   ShowHeader= "False ">  
                          <ItemTemplate>  
                          <asp:LinkButton   ID= "LinkButton1 "   runat= "server "   CausesValidation= "False "   CommandName= "Delete "
                          OnClientClick= 'return   confirm( "确认删除吗? "); '   Text= "删除 "   />
                        </ItemTemplate>
                        </asp:TemplateField>

                          </Columns>
                </asp:GridView>

cs:


  //更新
        protected   void   GridView1_RowUpdating(object   sender,   GridViewUpdateEventArgs   e)
        {  
                GridViewRow   gvr=this.GridView1.Rows[e.RowIndex];
                string   st_sqlstr   =   "update   ST_teacher   set   ST_Teacher_name=@Teacher_name,ST_Teacher_college=@Teacher_college   where   ST_Teacher_id=@Teacher_id ";
                SqlCommand   st_comm   =   new   SqlCommand(st_sqlstr,   st_conn);


                try
                {
                        //添加各种数据参数
                        st_comm.Parameters.Add(new   SqlParameter( "@Teacher_name ",   SqlDbType.VarChar,   50));
                        st_comm.Parameters.Add(new   SqlParameter( "@Teacher_college ",   SqlDbType.VarChar,   50));
                        st_comm.Parameters.Add(new   SqlParameter( "@Teacher_id ",   SqlDbType.BigInt,   8));
                        string   st_st_colvalue   =   ((TextBox)gvr.Cells[1].Controls[0]).Text;
                        st_comm.Parameters[ "@Teacher_name "].Value   =   st_st_colvalue;
                        st_st_colvalue   =   ((TextBox)gvr.Cells[2].Controls[0]).Text;
                        st_comm.Parameters[ "@Teacher_college "].Value   =   st_st_colvalue;
                        st_comm.Parameters[ "@Teacher_id "].Value   =   GridView1.DataKeys[e.RowIndex].Value;
                         
                        //打开连接
                        st_comm.Connection.Open();
                        st_comm.ExecuteNonQuery();
                        st_lbl_note.Text= "编辑成功 ";
                       
                }
                catch
                {  
                        st_lbl_note.Text= "编辑失败 ";
                        st_lbl_note.Style[ "color "]= "red ";
                }

        }

[解决办法]
1 你的Page_Load事件是不是这样写的
private void Page_Load(object sender, System.EventArgs e)
{
if (! IsPostBack ) //是否判断回传
{
BindGrid(); //绑定数据的方法
}
}
2 你更新之后你的GridView没有重新绑定数据
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//你的更新事件处理
GridView1.EditIndex = -1;
BindGrid();
}

热点排行