0

我有一个 ASPxGridView,我想允许一些用户读取和其他用户写入访问权限。理想情况下,这将基于 Active Directory 组。
我怎样才能做到这一点?

4

3 回答 3

1

如果您正在使用行的就地编辑,那么这将是隐藏允许用户编辑网格的控件的问题。

您可以通过使用事件处理程序连接到 GridView 的 RowDataBound 事件并检查用户的角色来做到这一点。如果他们未通过检查,则隐藏编辑控件。

void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      if (!Roles.IsUserInRole("Admin"))
      {
        // Hide the edit controls.
        // This would be your "Edit" button or something.
        e.Row.Cells[1].Controls[0].Visible = false;  
      }
    }
  }
于 2009-09-09T15:55:34.053 回答
0

我最终为 DataBound 事件创建了一个事件处理程序并禁用了命令列,如下所示:

protected void ASPxGridView1_DataBound(object sender, EventArgs e)
{ 
  if (!User.IsInRole(ConfigurationSettings.AppSettings["EditActiveDirectoryGroup"]))
  {
    foreach (GridViewColumn c in ASPxGridView1.Columns)
    {
      if (c.GetType() == typeof(GridViewCommandColumn))
      {
        c.Visible = false;
      }
    }
  }
}
于 2009-09-14T09:19:01.133 回答
0

如果您只想EditButton有条件地为某些行启用,DevExpress.com 上有一个示例CQ66919

此外,他们还参考了示例E366以获取ASPxGridView.

于 2010-02-10T07:13:08.350 回答