繁体   English   中英

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

[英]How to disable Telerik radgrid hyperlink column when a specific condition is true

我有一个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语句。 请帮助。提前感谢...

您将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中获得项目。 此外,验证超链接列的唯一名称。 实际上是“ EditHyperLinkColumn”吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM