新しく質問する

DataGridViewでのソート制御

役に立った:0件
  • 質問者:kspring
  • 投稿日時:2007/07/26 00:38
  • 困り度:すぐに回答が欲しいです
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

はじめまして。
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のグリッドをデータ数に関わらず
常に表示したいことから、行き詰ったのですが
どなたか良い方法をご存知ではないでしょうか?
よろしくお願いいたします。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:redfox63
  • 回答日時:2007/07/26 05:10

方法は2種類かな
1つは データソース自体にソート用の列を設ける
もう一つは DataGridViewのSortメソッド用にIComparer インターフェイスを継承したクラスを作成して ソートメソッドに与えてやる
このとき引数の Objct xが DBNullだったら DBNullのほうが大きいと返答をするよう
SortメソッドはGridDataViewのColumnHeaderMouseClickイベントなどで使う感じだと思います
ちょうど MSDNのColumnHeaderMouseClickイベントにソートの制御の例が載ってますよ
ただこれは 別の列でソートする例ですけどね
後は GridDataViewのSort(IComparer)メソッドの例が参考になるかも

昇順の場合だけならまだ楽ですが、降順にソートする場合も考慮しないといけないのだと大変だと思いますよ

通報する

この回答へのお礼

ご丁寧に回答ありがとうございます!
今回は時間が無いため、前者で行います。。。
本当後者のほうが、今後の為にもよさそうですが・・・

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter