I have been using this syntax for my asp:gridview and I am attempting to convert it to a RadGridView now.
I get an error of
Unable to cast object of type 'Telerik.Web.UI.GridBoundColumn' to type 'System.Web.UI.WebControls.DataControlField'.'
On this -
DataControlField
How should this syntax be changed to work with a 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;
}
You can't use GridView's DataControlField
instance in Telerik's RadGrid
because they're using different naming to define grid elements (columns, rows, etc.).
Try iterating MasterTableView.Columns
collection to find column index based on column name:
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;
}
NB: If RadGrid.MasterTableView.Columns
doesn't work, try alternatives like RadGrid.MasterTableView.AutoGeneratedColumns
or RadGrid.MasterTableView.RenderColumns
.
Similar issue: Get Column Index in RadGrid