C#:将DataTable绑定到GridView时更改列的顺序
如何从DataTable更改列的显示顺序?
例如,dataTable“dt”包含两列“a”和“b”。 我将它绑定到GridView,如下所示:
gridView.DataSource = dt; gridView.DataBind();
但我希望GridView首先显示“b”(最左边)。
重点:我正在使用它导出到Excel,并且没有实际输出到屏幕,使用:
HtmlTextWriter htw = new HtmlTextWriter(sw); gridView.RenderControl(htw);
谢谢!
是的,你可以在前端做到这一点。 这些方面的东西:
编辑:
你说没有前端? 这很酷 – 我喜欢挑战:
gridView.AutoGenerateColumns = false; gridView.Columns.Add(new BoundField { DataField = "b" }); gridView.Columns.Add(new BoundField { DataField = "a" });
(现在假设C#3不是很酷吗?)
这经常出现在面试问题中。 您正在将表的内容转储到excel文件,这很好,并且您在xl中使用html,这很好。 但是 – 您正在获取数据库表的内容并将其放入内存(DataTable)。 随着这些数据的增长,它可能会在服务器上使用越来越多的内存,特别是如果有这个报告的并发请求!
修复:改为使用DataReader并手动填充GridView(这解决了您发布的问题) – 或者更好地使用Simple OOXML之类的东西,并将数据直接写入.xlsx电子表格的xml表示。