已经进入一个场景。我有一个带有 22 个静态列的 gridview(很少是 BoundFields,很少是 TemplateFields)。我们的项目中有一个场景,我们需要根据选择的列对 GridView 进行排序。所选列的顺序由 UI 提供。例如:我们将 Doc1 到 Doc23 作为列。现在,根据 UI 中提供的功能,我传递了一些 4 列,例如 Doc2、Doc4、Doc5、Doc7。现在我希望只有这 4 列应该作为最终输出出现在我的网格中。尝试了一些代码,但它似乎不起作用。下面是我的代码:
public int GridColumnOrdering(string columnList)
{
string[] test = columnList.Split(';');
var docCatColumn = gridResultSet.Columns[0];
var docTypeColumn = gridResultSet.Columns[1];
int columnCount = 0;
int testCount = 0;
for (int i = 0; i < test.Count(); i++)
{
if (test[i] == "Doc2")
{
gridResultSet.Columns.Insert(i , docCatColumn);
columnCount++;
}
if (test[i] == "Doc3")
{
gridResultSet.Columns.Insert(i , docTypeColumn);
columnCount++;
}
}
gridResultSet.Columns[2].Visible = false;
gridResultSet.Columns[3].Visible = false;
}
columnList 是传递的参数,具有诸如 Doc2;Doc3 之类的值。我的想法是获得类似于从 UI 获得的列的静态列,将其位置更改为下一个位置,然后隐藏该静态列。这样,我们实际上有 2 列同名,但我试图隐藏静态列并显示动态列。我知道这听起来很奇怪而且很忙,但这就是我想到的。现在的问题是,如果我尝试改变静态列的可见性,动态列的可见性也会改变。专家可以帮助解决这个问题或在这方面指出一些简单的方法吗?问候阿努拉格