none
DataGridView排序狀態移除問題。 RRS feed

  • 問題

  • DataGridView的自動排序滿好用的,也會自動在欄位上標示三角形排序的方向。

    但是我現在想把排序移除確找不到Method。
    有看到 DataGridView.SortedColumn 欄位,表示正在排序的欄位(為唯讀),但找不到不要排序的方式。
    請幫忙。
    謝謝
    2009年8月12日 上午 11:40

解答

  • 找到答案了,此解實在是…無言呀。

    截取下面文章內容:
    DataGridView.Sort 方法 (IComparer)
    ……
    只有當未設定 DataSource 屬性時,這個方法才有效。當您將 DataGridView 控制項繫結至外部資料來源時,您必須使用該資料來源所提供的排序作業。當您藉由實作虛擬模式來提供您自己的資料來源時,也必須自行處理排序作業。
    ……

    答案是:不要透過DataGridView來取消排序。要用 DataSource 來取消,因為有Binding到DataSet。

    下面是本人的案例:
    使用DataTable當此DataGridView的DataSource。
    DataGridView.DataSource = DataTable;
    DataGridView的所有欄位的SortMord全是Automatic。
    這時就有排序的能力了。想排序的話,直接在DataGridView的欄位頭頭(Column Header)用滑鼠Click就行了。

    當不想排序時,把 DataTable.DefaultView.Sort 清空即可,即:
     DataTable.DefaultView.Sort = string.Empty;
    這樣就行了。
    好悶的答案。。。。
    • 已標示為解答 RelyKy 2009年8月13日 上午 05:54
    2009年8月13日 上午 05:54

所有回覆