我正在使用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);
知道出了什么问题?
答案 0 :(得分:0)
您可以将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
将grid的autogeneratecolumns属性设置为true,您将获得列