asp.net: вид сетки: упорядочить столбец - PullRequest
1 голос
/ 09 июня 2011

Я использую ASP.NET Grid View для отображения данных из таблиц. Я хочу расположить столбцы в определенном порядке, выбранном пользователем.

Объяснение: Я хотел бы поменять местами столбцы (т. Е. Индекс 3 становится 5 и т. Д.) В зависимости от ввода пользователя, возможно ли это?

Я пытался с этим кодом .. но все равно он дает неожиданный результат

        var boundF0 = (BoundField)GVReport.Columns[0];
        var boundF5 = (BoundField)GVReport.Columns[5];

        GVReport.Columns.RemoveAt(0);
        GVReport.Columns.RemoveAt(5);

        GVReport.Columns.Insert(0, boundF5);
        GVReport.Columns.Insert(5, boundF0); 

есть идеи, что пошло не так?

1 Ответ

0 голосов
/ 09 июня 2011

Вы можете использовать http://www.devexpress.com/ для Gridview или ниже код для традиционного метода.

DataTable dt = new DataTable();
dt.Columns.Add("Column1", typeof(string));
dt.Columns.Add("Column2", typeof(string));

while (dr.Read())
dt.Rows.Add(new object[] { dr[0], dr[1] });

Grid1.DataSource = dt;
Grid2.DataBind();

This would give you a grid with Column1 and Column2. Once you changed
the order you can do following

If (order_changed)
{
dt.Columns.Add("Column2", typeof(string));
dt.Columns.Add("Column1", typeof(string));
while (dr.Read())
dt.Rows.Add(new object[] { dr[1], dr[0] });
}

else
{

dt.Columns.Add("Column1", typeof(string));
dt.Columns.Add("Column2", typeof(string));
while (dr.Read())
dt.Rows.Add(new object[] { dr[0], dr[1] });
}

Now you would get a grid with Column2 and Column1

Установите для свойства autogeneratecolumns grid значение true, и вы получите столбцы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...