2009-09-09 6 views
0

일부 사용자에게는 읽기 권한을 부여하고 다른 사용자에게는 쓰기 권한을 부여 할 수있는 ASPxGridView가 있습니다. Active Directory 그룹을 기반으로하는 것이 이상적입니다.
어떻게하면됩니까?특정 사용자에게만 ASPxGridView 편집 허용

답변

0

내가 바인딩 이벤트에 대한 이벤트 핸들러를 작성하고 다음과 같이 명령 열을 사용하지 않도록 결국했습니다

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

RowDataBoundEvent가 있습니까? http://www.devexpress.com/Support/Center/p/Q133547.aspx를 참조하십시오. – macleojw

+0

예 .. 죄송합니다. 오타라고 생각했습니다. "ASPxGrid"라는 타사 구성 요소가 있다는 것을 알지 못했습니다. 글쎄, 대안은 행별로 행 대신에 데이터 바인딩이 완료된 후 모든 행을 거치는 것입니다. – womp

+0

ASPxGridView는 DevExpress Visual Studio 플러그인의 일부인 gridview 구성 요소입니다. – macleojw

0

당신이 특정 행에 대해 조건부로 EditButton을 사용하려면,이 예 : DevExpress.com에서 CQ66919 이상

또한 ASPxGridView의 최신 버전은 예제 E366을 참조하십시오.

관련 문제