读书人

GridView更新有关问题

发布时间: 2012-02-19 19:43:39 作者: rapoo

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();
}

读书人网 >asp.net

热点推荐