【问题标题】:How to disable Telerik radgrid hyperlink column when a specific condition is true当特定条件为真时如何禁用 Telerik radgrid 超链接列
【发布时间】:2016-06-30 09:11:51
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net telerik radgrid radgridview


    【解决方案1】:

    你把你的 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 中的项目。 此外,验证超链接列的唯一名称。真的是“EditHyperLinkColumn”吗?

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        • 1970-01-01
        • 1970-01-01
        • 2011-04-30
        • 1970-01-01
        相关资源
        最近更新 更多