首页 文章

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

提问于
浏览
0

我有一个Telerik 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语句 . 请帮忙 . 谢谢...

2 回答

  • 0

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

    您需要获取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;
        }
    }
    

相关问题