開発環境:WinXP(SP3) VB2005 Oracle 9i
①検索条件を入力
②検索ボタンを押す
③検索結果を DataGridView に表示
の画面を作成しています。
そこで、DataGridView の任意の列ヘッダをクリックしてソートした後に、
再度①、②の動作をした時に、前に列ヘッダをクリックしてソート
したものが引き継がれて前にクリックした列ヘッダの項目で
ソートされてしまします。
これを再度①、②の動作をした時に前にクリックした列でのソートを
解除したいと考えています。
調べた結果 BindingSource の Sort プロパティをNothingにすれば
解除出来ることは分かったのですが、BindingSourceを使用せずに
解決できる方法があればご教授下さい。
> 調べた結果 BindingSource の Sort プロパティをNothingにすれば
> 解除出来ることは分かったのですが、BindingSourceを使用せずに
> 解決できる方法があればご教授下さい。
先に理由・必要となる要件を全て提示しておいてください。
特攻隊長まるるう さんご指摘ありがとうございます。
BindingSource だと DataGridView の数だけ BindingSource を
配置するようになると思うのですが、もうすでに DataGridView
を使用して幾つかアプリケーションを作成しており、変更に
それなりに時間がかかりそうなので DataGridView の機能もしくは
BindingSource を使用するより早く変更が可能な方法がないか
探しています。
以上宜しくお願いします。
※不明、不透明な部分がございましたらご指摘のほどお願いします。
DataGridView に表示するデータはどうやってますか?
DataTable または DataSet を DataSource に設定している?
DataGridView.Rows に直接 Add している?
DataGridView には SQLの結果をDaraSetに
入れて DataSource に設定しています。
肝心なところが抜けいてました。
すいません。m(_ _)m
> DataGridView には SQLの結果をDaraSetに
> 入れて DataSource に設定しています。
この場合 DataGridView は、DataMember プロパティで指定された DataTable の、DefaultView で返される DataView を表示用データとして使用します。
この DataView にはソートやフィルタに使用できるプロパティが用意されています。
Sort プロパティに空文字列または null/Nothing が代入された場合、基となる DataTable の行順番通りに並べられます。
Hongliang さんアドバイスありがとうございます。
DataView の Sort プロパティを使用したら簡単且つ
短時間でできました。
ツイート | ![]() |