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

EditButton特定の行に対してのみ条件付きで有効にする場合は、CQ66919 の例がDevExpress.comにあります。

さらに、新しいバージョンの の例E366ASPxGridViewを参照しています。

于 2010-02-10T07:13:08.350 に答える
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 に答える