在特定索引处动态添加列到现有RadGrid

时间:2019-03-05 11:25:16

标签: asp.net telerik telerik-grid

我必须在特定位置添加自定义列运行时以退出Telerik网格。

string[] customColumns = ds.Tables[2].Rows[0]["CustomColumns"].ToString().Split(',');
int startIndex = 7;
for (int i = 0; i < customColumns.Length; i++)
{
    GridBoundColumn NewColumn = new GridBoundColumn();
    tableGrid.MasterTableView.Columns.AddAt(startIndex, NewColumn);
    NewColumn.HeaderText = customColumns[i].Replace("[", "").Replace("]", "");
    NewColumn.DataField = customColumns[i].Replace("[", "").Replace("]", "");
    NewColumn.Visible = true;
    NewColumn.FilterControlWidth = Unit.Percentage(70);
    NewColumn.HeaderStyle.CssClass = "setHeader";
    NewColumn.HeaderStyle.Width = 130;
    NewColumn.AllowFiltering = true;
    NewColumn.OrderIndex = startIndex;
    startIndex++;
}

使用此代码块列已成功添加到给定位置,但是当我使用现有的网格过滤器功能时,列的位置将发生更改,甚至我也看不到列中的值。

enter image description here

1 个答案:

答案 0 :(得分:0)

您将需要为这些列定义一个OrderIndex,并且在向网格中添加新的OrderIndex时,您将知道要使用哪个OrderIndex。请查看Reordering columns programmatically文章以供参考。