更改DataTable列中每个单元格的值

时间:2010-09-16 20:14:00

标签: c# .net datatable datacolumn

我有一个System.Data.DataTable,我绑定到GridView。如果用户没有某个安全角色,我想用“X”替换某些列中的数据。我可以不循环遍历所有行吗?

4 个答案:

答案 0 :(得分:2)

实现GridView RowDataBound事件,如果用户的安全角色不合适,请在那里进行更改。

  void CusomGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {
    if(User.Role != "Admin")
    {
      e.Row.Cells[1].Text = "X";

    }
  }

答案 1 :(得分:2)

严格来说,没有。您可以使用Linq样式的扩展方法来隐藏实现,但是过程语言中的任何代码都将涉及遍历行的迭代循环。甚至RowDataBound事件也会被每行迭代地触发;但是,无论如何它都会遍历行,所以至少你不会重复循环行为。

答案 2 :(得分:1)

您可以只使用第二列,并准备将其命名为“your column2” 填充x数据后,您可以根据管理员访问级别确定哪个列可见。

在VB.NET中,如果没有递归,则无法更改每行的值。

答案 3 :(得分:1)

您也可以在后端执行此操作。将userID或角色传递给sp,该sp仅返回可查看的列,并且为无法查看的列传递“X”值,并将UI绑定到该列。