将 Asp:GridView 转换为 RadGridView

Convert Asp:GridView To RadGridView

我一直在为我的 asp:gridview 使用此语法,现在我正尝试将其转换为 RadGridView。

我得到一个错误

Unable to cast object of type 'Telerik.Web.UI.GridBoundColumn' to type 'System.Web.UI.WebControls.DataControlField'.'

关于这个-

DataControlField

如何更改此语法以使用 RadGrid?

    private int GetColumnIndexRad(Telerik.Web.UI.RadGrid grid, string colName)
    {
        foreach (DataControlField col in grid.Columns)
        {
            if (col.HeaderText.ToLower().Trim() == colName.ToLower().Trim())
            {
                return grid.Columns.IndexOf(col);
            }
        }
        return -1;
    }

您不能在 Telerik 的 RadGrid 中使用 GridView 的 DataControlField 实例,因为它们使用不同的命名来定义网格元素(列、行等)。

尝试迭代 MasterTableView.Columns 集合以根据列名查找列索引:

private int GetColumnIndexRad(Telerik.Web.UI.RadGrid grid, string colName)
{
    foreach (GridColumn column in grid.MasterTableView.Columns)
    {
        if (column.UniqueName.ToLower().Trim() == colName.ToLower().Trim())
        {
            return column.OrderIndex - 1;
        }
    }
    return -1;
}

注意:如果 RadGrid.MasterTableView.Columns 不起作用,请尝试 RadGrid.MasterTableView.AutoGeneratedColumnsRadGrid.MasterTableView.RenderColumns.

等替代方案

类似问题:Get Column Index in RadGrid