首页 文章

Telerik RadGrid GridDataItem - 如何确定列是否存在?

提问于
浏览
6

我正在使用基类来修改ASP.Net页面上出现的任何Telerik RadGrid的行为 . 在基类中,我想在许多常见列上执行某些操作(设置Css,工具提示等),但不是每个网格中都存在每个公共列 .

在ItemDataBound事件中,我正在获取GridDataItem的实例,而我又希望获得对GridDataItem的一个或多个包含单元格的引用:

var cell = gridDataItem["ColumnUniqueName"]

问题是,如果命名列不存在,则抛出GridException:

找不到绑定到列名“ColumnUniqueName”的单元格

有没有办法在引用列之前按名称测试列的存在,还是我使用try catch?

2 回答

  • 5

    将我送上正确的道路:

    var tableView = gridDataItem.OwnerTableView;
    var gridColumn = tableView.Columns.FindByUniqueNameSafe(uniqueName);
    if (gridColumn != null)
        {
            var cell = gridDataItem[gridColumn];
        ...
    
  • 6

    尝试使用RenderColumns集合:

    protected void rgGrid_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            bool found  = (from d in rgGrid.MasterTableView.RenderColumns select d).Any(d => d.UniqueName == "ColumnUniqueName");
        }
    }
    

相关问题