- PR -

DataGridのソートの昇順・降順

投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-10-10 18:30
ソートの昇順は下記のように出来たのですが、
昇順と降順の切り替えを行うにはどうしたらよいのでしょうか?
ある本には「最後に行ったソートのフィールドと、そのソートが昇順か降順かを保持して
おく必要がある。」と書かれていました。が、ソースは書いてありませんでした。
これはどうソースを書いたら実現出来ますか?
よろしくお願いします。

Dim DT_ITEM As DataTable = CnOrdItm.get_Item_Detail(Con, ItemCls)

'DataTable型をDataView型に変換
Dim view As DataView = New DataView(DT_ITEM)

'ソート
view.Sort = e.SortExpression

'ソートしたDataViewをバインド
DataGrid1.DataSource = view
DataGrid1.DataBind()
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-10-10 19:30
こんばんは。

昇順、降順は以下のようにしていました。
-----------------------------
Dim dt As New DataTable()
(中略)
Dim dv As New DataView(dt)
'昇順
dv.Sort = "aaa"
'降順
dv.Sort = "aaa DESC"
-----------------------------
#aaa:ソートキー(DataGridのテキストフィールド名)

・・・で、どのように「切り替え」るのでしょうか?
ボタンによって昇順、降順にソートするとか?

[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-10-10 20:09 ]
masa
会議室デビュー日: 2003/03/26
投稿数: 6
投稿日時: 2003-10-10 19:53
どうもはじめまして、自分もソートを一番気にしていますが、どうも内容を読ませて頂いても理解出来ませんので、できればVBのソースをお送り頂ければと思います。
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-10-10 20:31
私の言っている「切り替え」とはDataGridのヘッダー部分をクリックすると昇順、
もう一回クリックすると降順となることです。この繰り返しということです。
クリックカウンタのような変数を用意した方が良いのでしょうか?
偶数回クリックすると降順、奇数回だと昇順となるようにやろうと思います。
他に良い方法はありますでしょうか?
よろしくお願いします。

引用:

まゆりんさんの書き込み (2003-10-10 19:30) より:
こんばんは。

昇順、降順は以下のようにしていました。
-----------------------------
Dim dt As New DataTable()
(中略)
Dim dv As New DataView(dt)
'昇順
dv.Sort = "aaa"
'降順
dv.Sort = "aaa DESC"
-----------------------------
#aaa:ソートキー(DataGridのテキストフィールド名)

・・・で、どのように「切り替え」るのでしょうか?
ボタンによって昇順、降順にソートするとか?

[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-10-10 20:09 ]

まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-10-10 21:14
この辺など参考にならないでしょうか?
実例で学ぶASP.NETプログラミング
第7回 一覧ページを作る―DataGridコントロールに対するコーディング―
3.DataGridコントロールに列項目ごとの並べ替え機能を実装する



[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-10-10 21:17 ]
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-10-10 21:59
なるほど。
参考どころか解決できました。ありがとうございました。

引用:

まゆりんさんの書き込み (2003-10-10 21:14) より:
この辺など参考にならないでしょうか?
実例で学ぶASP.NETプログラミング
第7回 一覧ページを作る―DataGridコントロールに対するコーディング―
3.DataGridコントロールに列項目ごとの並べ替え機能を実装する



[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-10-10 21:17 ]

masa
会議室デビュー日: 2003/03/26
投稿数: 6
投稿日時: 2003-10-17 01:06
ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-10-17 09:33
本日追加のTipsでも
http://www.atmarkit.co.jp/fdotnet/dotnettips/074sortdg/sortdg.html

 ところでまゆりんさんの提示されている記事ですが、列1で昇順に並べ替えを行ったあと、列2を並べ替えようとすると降順になるのでは?ここは、「前回どの列でソートを行ったか」を貯めておき、「ソートしたい列と前回ソートした列は同じか」判断するようにしては如何?


 それと、クラスのsharedは、アプリケーションで保持される点に注意。複数の人が同時にアクセスしている場合、全ての人で共有されている、という意味。

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