【发布时间】:2015-08-11 01:52:44
【问题描述】:
我有一个网格,在网格中有两个项目模板列 - 复选框 1 和复选框 2。
我想根据用户是管理员还是普通用户禁用整个 Checkbox 1 列。
比如说,如果用户是“管理员”,我希望启用两列,并且用户可以选中/取消选中这两列。
但是,如果用户是“普通用户”,我想禁用“Checkbox1”,以便用户只能选中/取消选中复选框 2。但可以看到“复选框 1”列的值并且无法对其进行编辑或更改。
目前,我正在实现以下行为 -
protected void grdchkbox_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chkbox1 = (e.Row.FindControl("Checkbox1") as CheckBox);
if (IsGeneralUser(empid))
{
chkbox1.Enabled = false;
}
}
}
问题在于页面加载时间。
每次绑定一行时它都会检查用户的角色,这意味着在每行绑定时进行数据库调用。
此外,它还分别禁用了每一行的复选框。
有没有办法,我可以一次性禁用整个复选框 1 列?
【问题讨论】:
-
您能否先检查用户是否处于某个角色,存储该值,然后根据该值启用或禁用该行?在绑定gridview之前?省去每行检查去数据库的需要?
-
我的回答对你有帮助吗?
-
感谢 psoshmo.. 它对我有用。 :)