vs 2003下,我用if (e.Item.ItemType == ListItemType.EditItem)就可知道datagrid那一行处于编辑状态,到了 vs 2005下用gridview,这个没法用了,只好改用 if (e.Row.RowState == DataControlRowState.Edit),但不是每次都能捕捉到,现在我只能在异常里做判断,倒是没问题,不知有何良策?
protected void GV_DictList_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataRowView dr = (DataRowView)e.Row.DataItem; if (dr != null)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == DataControlRowState.Edit)
{
((TextBox)e.Row.FindControl("TBox_DictName")).Text = dr["DictName"].ToString();
}
else
{
try
{
((Label)e.Row.FindControl("Lbl_DictList_ID")).Text = dr["ID"].ToString();
((Label)e.Row.FindControl("Lbl_DictList_DictName")).Text = dr["DictName"].ToString();
}
catch
{
//居然捕捉不到edit状态。只好将就着用了。
((TextBox)e.Row.FindControl("TBox_DictName")).Text = dr["DictName"].ToString();
}
}
}
}
}
protected void GV_DictList_RowEditing(object sender, GridViewEditEventArgs e)
{
GV_DictList.EditIndex = e.NewEditIndex;
this.GVBind();//数据绑定
}
protected void GV_DictList_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataRowView dr = (DataRowView)e.Row.DataItem; if (dr != null)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == DataControlRowState.Edit)
{
((TextBox)e.Row.FindControl("TBox_DictName")).Text = dr["DictName"].ToString();
}
else
{
try
{
((Label)e.Row.FindControl("Lbl_DictList_ID")).Text = dr["ID"].ToString();
((Label)e.Row.FindControl("Lbl_DictList_DictName")).Text = dr["DictName"].ToString();
}
catch
{
//居然捕捉不到edit状态。只好将就着用了。
((TextBox)e.Row.FindControl("TBox_DictName")).Text = dr["DictName"].ToString();
}
}
}
}
}
protected void GV_DictList_RowEditing(object sender, GridViewEditEventArgs e)
{
GV_DictList.EditIndex = e.NewEditIndex;
this.GVBind();//数据绑定
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货