【发布时间】:2015-12-05 04:38:30
【问题描述】:
我有一个像这样的 CheckBox 列的网格:
我只想在编辑时启用选定行“e”的复选框,并在更新/取消后禁用。这是我尝试过的:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
((CheckBox)e.Row.FindControl("chkStatus")).Enabled = false;
}
}
catch
{
}
}
这是为了在更新/编辑时启用复选框:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow gvRow = GridView1.Rows[index];
if (e.CommandName == "Edit" || e.CommandName == "Update")
{
((CheckBox)gvRow.FindControl("chkStatus")).Enabled = true;
}
else if (e.CommandName == "Cancel")
{
}
}
但问题是每次编辑/更新后,RowDataBound 都会触发并再次禁用 CheckBox。
我怎样才能避免这种情况?
【问题讨论】:
-
为什么
RowDateBound会火?因为你DataBind 网格又来了?然后要么不这样做,要么再次加载现在应该包含更新值的数据源,所以Enabled=true。 -
是的 .. 我再次触发 databind() .. 感谢您的提示
-