- PR -

DataGrid ソートの解除について

1
投稿者投稿内容
Coup
会議室デビュー日: 2004/12/03
投稿数: 3
投稿日時: 2005-02-16 15:43
はじめまして、こんにちわ!

WindowsFormにてDataGridを表示しています。
DataGridのカラムヘッダーテキストセルをクリックすると、
項目の並び替え(ソート)が実行されますが、
クリックするたびに昇順と降順が切り替わるだけで
元に(ソート前の並び順に)戻すことができません。

ソートは解除できるのでしょうか?
また、解除の方法としてはどのような処理をすれば良いのでしょうか。

よろしくお願いいたします。
xxななおxx
ベテラン
会議室デビュー日: 2005/01/18
投稿数: 61
お住まい・勤務地: 東京(練馬)
投稿日時: 2005-02-16 16:51
Grid項目の並びかわった状態を最初の状態にもどすのが目的なのか?
ソートそのものをしないようにするのか?
どちらでしょう?

後者だとしたら
.AllowSortingプロパティは試したのでしょうか?(デフォルト:=True->=Falseにする)
Coup
会議室デビュー日: 2004/12/03
投稿数: 3
投稿日時: 2005-02-16 17:00
ななお 様

こちらの説明不足でした、申し訳ございません。
ヘッダーセルクリックにてソートをさせるのは必要条件でして、
"ソートを実行した後にソートを解除"する方法を模索しております。
つまり、前者になります。

AllowSortingの切り替えを行ったり、
DataSorceの再バインド等を試しましたがソートが保持されたままで困っています。

よろしくお願いいたします。
おふぃすこま
常連さん
会議室デビュー日: 2005/01/24
投稿数: 22
投稿日時: 2005-02-16 17:28
私もユーザーから似たような事を言われた事がありました。

その時は、

『ID』という列を先頭に追加して、
バインド時に各行に番号を採番しました。

これで、他の列で並び替えを行った後、元に戻したい場合は
『ID』の列で再度並び替えを行って下さい・・・って事にしました。

Coup
会議室デビュー日: 2004/12/03
投稿数: 3
投稿日時: 2005-02-16 18:41
おふぃすこま 様
貴重な情報ありがとうございました、
一度諦めかけたのですが再度ソースコードの見直しをした結果、
ソートの解除を実現できることが分かりました!

---- 以下コード ----
'DataGrdiのバインディングを解除
DataGrid.DataSource = Nothing

'〜〜〜〜(略)DataTableの内容を変更する処理〜〜〜〜

'DataGridに再バインド
DataGrid.DataSource = DataTable1
'ソートを解除
DataTable1.DefaultView.Sort = ""

-----------------

お手数をおかけして申しわけありません。
お知恵を貸してくださいました皆様、
ありがとうございました!


[ メッセージ編集済み 編集者: Coup 編集日時 2005-02-16 19:23 ]
1

スキルアップ/キャリアアップ(JOB@IT)