DOBON.NET DOBON.NETプログラミング掲示板過去ログ

データグリッドビューのソート

環境/言語:[XP、VB.NET2005]
分類:[.NET]

こんにちは。
環境はXP、VB.NET2005です。
データグリッドビューの列ヘッダでソートをかけたあと、△が表示されるのですが、ソート前に戻す(△の表示を消す)ようなプロパティやメソッド又は方法があるのでしょうか?
■No24449に返信(困ったさんの記事)
> データグリッドビューの列ヘッダでソートをかけたあと、△が表示されるのですが、ソート前に戻す(△の表示を消す)ようなプロパティやメソッド又は方法があるのでしょうか?

元データの並び順をクリアしては如何でしょう(例:DataViewのSortプロパティ)。

△を消すだけならば、DataGridViewColumn.SortMode を NotSortable にするとか
DataGridViewColumnHeaderCell.SortGlyphDirection を None にするといった
方法もありますけれどね。
魔界の仮面弁士さんありがとうございます。
> 元データの並び順をクリアしては如何でしょう(例:DataViewのSortプロパティ)。
>
> △を消すだけならば、DataGridViewColumn.SortMode を NotSortable にするとか
> DataGridViewColumnHeaderCell.SortGlyphDirection を None にするといった
> 方法もありますけれどね。

△を消すだけならば仰る通りの方法で出来ました。
ただグリッドのソートが物理的にまだ効いている状態なのでソート状態になっています。
SQLで取得したものをDataTableに格納していてその段階ではソートがかかっていない状態になっています、グリッドのDataSourceに指定するとグリッドにソートがかかっている状態なのでここでソートがかかってしまいます。
グリッド自体のソートを解除することが出来るといいんですが・・・
DataGridView の DataSource に DataTable を指定した場合、表示にはその DataTable の DefaultView プロパティで取得できる DataView が使用されており、ソートはこの DataView の Sort プロパティを使って実現されています。
この Sort プロパティは String 型で、Nothing や空文字列を設定することでソートがクリアされ元データの並びで取得されるようになります。
■No24466に返信(Hongliangさんの記事)
> DataGridView の DataSource に DataTable を指定した場合、表示にはその DataTable の DefaultView プロパティで取得できる DataView が使用されており、ソートはこの DataView の Sort プロパティを使って実現されています。
> この Sort プロパティは String 型で、Nothing や空文字列を設定することでソートがクリアされ元データの並びで取得されるようになります。

Hongliangさんありがとうございます。
なるほど。
DefaultView.Sort = String.Emptyで実現しました。
感謝致します。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板