进入了一个场景。 我有一个带有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获取的列,将其位置更改为下一个位置,然后隐藏该静态列。通过这种方式,我们实际上有两列相同的名称,但我试图隐藏静态列并显示动态列。 我知道这听起来很奇怪而且很忙,但这就是我想到的。 现在的问题是,如果我尝试更改静态列的可见性,则动态列的可见性也会发生变化。 专家可以帮助解决这个问题,或者在这方面指出一些简单的方法吗? 问候 阿努拉格