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

时间:2013-11-07 16:10:41

标签: asp.net telerik telerik-grid radgrid

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

在ItemDataBound事件中,我正在获取GridDataItem的实例,反过来我想获得对GridDataItem的一个或多个包含单元格的引用:

var cell = gridDataItem["ColumnUniqueName"]

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

找不到绑定到列名“ColumnUniqueName”

的单元格

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

2 个答案:

答案 0 :(得分:6)

会让我走上正确的道路:

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

答案 1 :(得分:5)

尝试使用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");
    }
}