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

Lee*_*eco 6 asp.net telerik radgrid telerik-grid

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

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

var cell = gridDataItem["ColumnUniqueName"]
Run Code Online (Sandbox Code Playgroud)

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

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

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

Lee*_*eco 6

将我送上正确的道路:

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


Wil*_*ill 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");
    }
}
Run Code Online (Sandbox Code Playgroud)