我有一个绑定到 GridView 的 System.Data.DataTable。如果用户没有特定的安全角色,我想用“X”替换某些列中的数据。我可以在不遍历所有行的情况下做到这一点吗?
问问题
2239 次
4 回答
2
实现 GridView 的 RowDataBound 事件,如果用户的安全角色不足,则在其中进行更改。
void CusomGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(User.Role != "Admin")
{
e.Row.Cells[1].Text = "X";
}
}
于 2010-09-16T20:20:20.893 回答
2
严格来说,没有。您可以使用 Linq 样式的扩展方法来隐藏实现,但是过程语言中的任何代码都将涉及遍历行的迭代循环。甚至 RowDataBound 事件也会被每一行迭代地触发;但是,无论如何它都在遍历行,所以至少你没有重复循环行为。
于 2010-09-16T20:22:34.273 回答
1
您可以简单地将第二列可用并准备好将其命名为“您的 column2”,其中填充了 x 数据,然后您可以根据管理员访问级别确定哪一列是可见的。
在 VB.NET 中,您不能在没有递归的情况下更改每一行的值。
于 2010-09-16T20:23:55.310 回答
1
您也可以在后端执行此操作。将用户 ID 或角色传递给一个 sp,它只返回可查看的列和他们看不到的列的“X”值,并将 UI 绑定到该值。
于 2010-09-16T20:30:36.940 回答