2016-06-30 10 views
0

Telerik Radgrid가 있습니다. 특정 조건이 참일 때 페이지로드 이벤트에서 하이퍼 링크 열을 비활성화하려고합니다. 데이터베이스에서 역할 ID를 가져오고 역할 ID를 기준으로 페이지로드 이벤트에서 하이퍼 링크 열을 비활성화하려고합니다. 페이지가로드가 역할 ID를 가져옵니다하지만 foreach 문 안쪽에 가지 않았다 때 내 코드는 여기특정 조건이 참일 때 Telerik radgrid 하이퍼 링크 열을 비활성화하는 방법

if(RoleId==3) 
{ 
btnsave.Enabled= false; 

    foreach(griddataitem item in RagGrid1.Items) 
    { 
    HyperLink edit = (hyperlink)item["EditHyperLinkColumn"].Controls[0]; 
    edit.Enabled = false; 
    } 
}  

입니다. 도와주세요. 미리 감사드립니다 ...

답변

0

MasterTableView에서 항목을 가져와야합니다. 또한 하이퍼 링크 열의 고유 이름을 확인하십시오. 실제로 "EditHyperLinkColumn"입니까?

if(RoleID == 3) 
{ 
    btnsave.Enabled = false; 
    foreach(GridDataItem item in RadGrid1.MasterTableView.Items) 
    { 
     HyperLink edit = (HyperLink)item["EditHyperLinkColumn"].Controls[0]; 
     edit.Enabled = false; 
    } 
} 
2

어디에 foreach 루프를 넣었습니까? Page_Load 메소드에서? RadGrid에는 자체 수명주기가 있고 이벤트가 특정 순서로 발생하기 때문에 이것이 작동하지 않을 수 있습니다.

대신 할 수있는 일은 ItemDataBound 이벤트에 조건을 적용하는 것입니다.

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
{ 
    if (e.Item is GridDataItem) 
    { 
     var item = (GridDataItem)e.Item; 
     var editlink = item.FindControl("EditHyperLinkColumn") as HyperLink; 
     if (editlink != null) 
     { 
      editlink.Enabled = false; 
     } 
    } 
}