我在服务器端写的数据显示和 "编辑 "按扭的代码,但是我在点击编辑后,修改
TextBox框的值,然后点击更新。可是得到的不是修改以后的值,而是没有修
改以前的值。我调试了一下,发现进入到了RowUpdating事件里了,但是用
String tb=((TextBox)gv.Rows[e.RowIndex].Cells[2].Controls[0]).Text
得到的值是没有修改以前的。请教了二十几个群,和十几个论坛,就是没有
人知道。在线急等。
------解决方案--------------------------------------------------------
试试这个
String tb = ((TextBox)gv.Rows[e.EditIndex].Cells[2].Controls[0]).Text ;
------解决方案--------------------------------------------------------
GridViewUpdateEventArgs.NewValues
------解决方案--------------------------------------------------------
Keys字典中一般存放的是数据源中的主键字段的key和value的对应值,如果主键由多个字段组成,那么Keys为每个键字段添加其字段名称和值。OldValues中存放的是要更新的行的字段名和原始值,每个字段为其中的一项。NewValues中存放的是要更新的行的字段名和修改后的值,每个字段为其中的一项。注意,主键字段只存放于keys集合中。
这三个集合中的每一项都是DictionaryEntry类型的对象,我们可以用DictionaryEntry.Key来确定一个项的字段名称,用DictionaryEntry.Value来确定某项的值。
http://goforideal.bokee.com/viewdiary.14490513
------解决方案--------------------------------------------------------
page-load中是否加入了ispostback?
------解决方案--------------------------------------------------------
楼上正解,LZ没有做ispostback判断就在page_load事件对gridview进行了绑定
------解决方案--------------------------------------------------------
是啊,要加ispostback,或者还要重新DataBind一下
------解决方案--------------------------------------------------------
同一问题怎么问两遍?
LZ 有空看看下贴的回复!
http://community.csdn.net/Expert/topic/5547/5547135.xml?temp=.050152
另,LZ 把代码贴出来晒晒!看代码比较容易些!
------解决方案--------------------------------------------------------
数据绑定要放在
if(!IsPostBack)里面
要不然每次页面回送都会进行一次数据绑定,数据总是初始的
------解决方案--------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindRole();
}
}
private void BindRole()
{
DataTable dt = roleDB.GetAllRole();
gvRoles.DataSource = dt.DefaultView;
gvRoles.DataBind();
}
protected void gvRoles_RowEditing(object sender, GridViewEditEventArgs e)
{
gvRoles.EditIndex = e.NewEditIndex;
BindRole();
}
protected void gvRoles_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvRoles.EditIndex = -1;
BindRole();
}
protected void gvRoles_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow gvrRoles = gvRoles.Rows[gvRoles.EditIndex];
int iRoleID = int.Parse(gvRoles.DataKeys[gvRoles.EditIndex].Value.ToString());
string strRoleName = ((TextBox)gvrRoles.FindControl( "txtRoleName ")).Text.Trim();
string strRoleDes = ((TextBox)gvrRoles.FindControl( "txtDes ")).Text.Trim();
int iFlag = 0;
CheckBox chkFlagNew = (CheckBox)gvrRoles.FindControl( "chkEFalg ");
if (chkFlagNew.Checked == true)
iFlag = 1;
bool bFlag = roleDB.UpDateRole(strRoleName, strRoleDes, iFlag,iRoleID);