DataGridViewでのソート制御
はじめまして。
Winアプリを作成していますが、ネットで検索をかけても
どうしても分からない事があるのでお教えいただけないでしょうか?
【環境】
Window XP
VS2005 VB.net
【質問】
DataGridViewでソートを行う際にデータをNULL(Nothing)にした部分が
ソートに反映されてしまうのですが、どうにかソートされないように
する方法はありますでしょうか?
例:
データ1
データ2
データ3
NULL
NULL
ソートを行うと
NULL
NULL
データ1
データ2
データ3
希望値としては以下です。
データ1
データ2
データ3
NULL
NULL
もともとはDataGridViewのグリッドをデータ数に関わらず
常に表示したいことから、行き詰ったのですが
どなたか良い方法をご存知ではないでしょうか?
よろしくお願いいたします。
回答(1件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.1ベストアンサー20pt
方法は2種類かな
1つは データソース自体にソート用の列を設ける
もう一つは DataGridViewのSortメソッド用にIComparer インターフェイスを継承したクラスを作成して ソートメソッドに与えてやる
このとき引数の Objct xが DBNullだったら DBNullのほうが大きいと返答をするよう
SortメソッドはGridDataViewのColumnHeaderMouseClickイベントなどで使う感じだと思います
ちょうど MSDNのColumnHeaderMouseClickイベントにソートの制御の例が載ってますよ
ただこれは 別の列でソートする例ですけどね
後は GridDataViewのSort(IComparer)メソッドの例が参考になるかも
昇順の場合だけならまだ楽ですが、降順にソートする場合も考慮しないといけないのだと大変だと思いますよ
この回答へのお礼
ご丁寧に回答ありがとうございます!
今回は時間が無いため、前者で行います。。。
本当後者のほうが、今後の為にもよさそうですが・・・
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











