2010-03-08 72 views
0

我有一個問題,我正在嘗試修復,並且它在多列上對DataGridView進行排序。我已經讀過這個選項不是內置DataGridView的功能,我必須實現它。我找到了多種解決方案,但都沒有做任何工作。使用綁定源或綁定列表對多列進行排序

我在C#中也是一個新手,我不太瞭解.Net庫。我也在MSDN網站上閱讀了關於可能有用的不同類的信息,但沒有成功。

現在,讓我們開始談談。我有一個DataGridView,有一個BindingList(最初是一個BindingSource),我想排序,但是通過多個鍵。我的DataGrid有9列,用戶應該能夠在任何列上排序。例如,假設我的Datagrid有3列,分別命名爲:Index,ID,Name。用戶想要按名稱排序,下一個訂單將是Index,然後是ID。所以,如果兩個名字相同,Index應該是下一個排序選項。

任何想法如何做到這一點?

回答

0

BindingSource對象有一個Sort屬性,可以讓你通過你想要的任何屬性對它的對象集合進行排序,就像SQL中的ORDER BY子句一樣。在排序之後,我想你可能應該通過Refresh()方法刷新你的DataGridView。

您是否嘗試過?

+0

這正是我想要建議的。我想我可以添加一些細節。基本上,一旦用戶點擊一個標題進行排序,就可以使用鼠標單擊事件處理程序捕獲此事件。然後更新Datagrids視圖。 – msarchet 2010-03-08 20:39:15

+0

感謝您的評論!這然後證實這是一個好方法。兩個頭比一個好! =) – 2010-03-08 21:11:38

+1

嗯,我沒有完全嘗試,但它似乎並沒有解決我的問題。我會舉一個例子。我有2個條目,分別是「2,10,A書」和「1,11,D書」。如果用戶點擊名稱列標題,則條目將保持相同的順序。在我的情況下,我希望第二個條目的索引爲1,首先給出如下內容:ORDER BY'用戶點擊的列標題','最左邊的其他列'等。 – 2010-03-10 14:46:04

相關問題