[英]C#: Changing the order of columns when binding DataTable to a GridView
如何從DataTable更改列的顯示順序?
例如,dataTable“dt”包含兩列“a”和“b”。 我將它綁定到GridView,如下所示:
gridView.DataSource = dt;
gridView.DataBind();
但我希望GridView首先顯示“b”(最左邊)。
重要的一點:我正在使用它導出到Excel,並且沒有實際輸出到屏幕,使用:
HtmlTextWriter htw = new HtmlTextWriter(sw);
gridView.RenderControl(htw);
謝謝!
是的,你可以在前端做到這一點。 這些方面的東西:
<asp:GridView runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="b" />
<asp:BoundField DataField="a" />
</Columns>
</asp:GridView>
編輯:
你說沒有前端? 那很酷 - 我喜歡挑戰:
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表示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.