在页面第一次载入的时候,用了(!Page.IsPostBack),所有datagrid显示都是正确的。
但是一旦点击编辑后,出现奇怪情况,有些数据竟然跑到标题上去了,而且所点的那个行的EditItemIndex也不正确。
点击前如图:http://www.showbuy.cn/111.gif点击后如图:http://www.showbuy.cn/222.gif
但是一旦点击编辑后,出现奇怪情况,有些数据竟然跑到标题上去了,而且所点的那个行的EditItemIndex也不正确。
点击前如图:http://www.showbuy.cn/111.gif点击后如图:http://www.showbuy.cn/222.gif
private void DataGrid1_UpdateCommand(object source, DataGridCommandEventArgs e)
{
SqlConnection con=new SqlConnection("server=localhost;database=userdb;uid=sa;pwd=1");
con.Open();
SqlTransaction tran=con.BeginTransaction();//定义
try
{
TextBox userid=(TextBox)e.Item.Cells[2].Controls[0];
TextBox username=(TextBox)e.Item.Cells[3].Controls[0];
TextBox sex=(TextBox)e.Item.Cells[4].Controls[0];
TextBox age=(TextBox)e.Item.Cells[5].Controls[0];
TextBox job=(TextBox)e.Item.Cells[6].Controls[0];
TextBox address=(TextBox)e.Item.Cells[7].Controls[0];
TextBox tel=(TextBox)e.Item.Cells[8].Controls[0];
sql="update usertbl set";
sql=sql+" userid='"+userid.Text.Trim()+"',";
sql=sql+" username='"+username.Text.Trim()+"',";
sql=sql+" sex='"+sex.Text.Trim()+"',";
sql=sql+" age='"+age.Text.Trim()+"',";
sql=sql+" job='"+job.Text.Trim()+"',";
sql=sql+" address='"+address.Text.Trim()+"',";
sql=sql+" tel='"+tel.Text.Trim()+"'";
SqlCommand com=new SqlCommand(sql,con);
com.Transaction=tran;//事务开始
com.ExecuteNonQuery();
tran.Commit();//提交
DataGrid1.EditItemIndex=-1;
}
另外,如果我把每个datagrid分开写成自定义控件的话,还是要出现这样的问题,现在真不知道怎么解决了,帮帮忙啊
点击编辑之后页面会刷新一次,会先执行Page_load函数,如果你用了
数据绑定在(!Page.IsPostBack)里,则不会执行里面的数据绑定,然后
再执行编辑函数,很有可能再次绑定时与原来绑定的内容不同你把(!Page.IsPostBack)删除看