2016-06-30 7 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; 
     } 
    } 
} 
関連する問題