繁体   English   中英

只允许某些用户编辑ASPxGridView

[英]Only Allow Certain Users to Edit ASPxGridView

我有一个ASPxGridView,我希望允许某些用户具有读取权限,而另一些用户具有写入权限。 理想情况下,这将基于Active Directory组。
我怎样才能做到这一点?

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

您可以通过使用事件处理程序连接到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;  
      }
    }
  }

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

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;
      }
    }
  }
}

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

此外,它们还参考示例E366来获取ASPxGridView较新版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM