如何在特定条件为真时禁用Telerik radgrid超链接列

本文关键字:Telerik radgrid 超链接 特定条件 | 更新日期: 2023-09-27 17:53:14

我有一个teleerik Radgrid。当特定条件为真时,我要禁用页面加载事件上的超链接列。我从数据库中获得角色id,并在角色id的基础上要禁用页面加载事件上的超链接列。我的代码在这里

if(RoleId==3)  
{  
btnsave.Enabled= false;
  foreach(griddataitem item in RagGrid1.Items)  
   {  
     HyperLink edit = (hyperlink)item["EditHyperLinkColumn"].Controls[0];  
     edit.Enabled = false;  
   }  
}    
当页面加载时,

获取角色id,但没有进入foreach语句。请帮助。

如何在特定条件为真时禁用Telerik radgrid超链接列

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

你需要在MasterTableView中获取项目。另外,验证超链接列的UniqueName。它实际上是"EditHyperLinkColumn"吗?

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