簡體   English   中英

C#:將DataTable綁定到GridView時更改列的順序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM