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

ソート

  • 題名: ソート
  • 著者: おか
  • 日時: 2004/08/24 16:34:08
  • ID: 5778
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WinXP]
分類:[.NET]

DataViewにそーとをしているのですが、なぜかDataViewにソートがされません。

DataGridに選択した項目をソートするプログラムを作成しています
項目Aの次に選択されている項目をソートしたいのですが

↓スクリプト
DataGrid.MouseDownイベント
DataView.Sort = "項目A DESC, 選択されている項目 ASC"
DataGrid.DataSouce = DataView

と記述しているのですが、なぜか選択されている項目だけソートをしているような
気がします。
デバッグで確かめたところ、デバッグだとうまくソートしてくれます
なぜデバッグだとうまくソートするのかがわかりません。
ここが怪しいのでは?というところが何かありましたら教えてください。
  • 題名: Re[1]: ソート
  • 著者: 深山
  • 日時: 2004/08/31 12:24:45
  • ID: 5928
  • この記事の返信元:
    • [5778] ソート おか 2004/08/24 16:34:08
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No5778に返信(おかさんの記事)

 おかさん、こんにちは。深山と申します。

> DataGrid.MouseDownイベント
> DataView.Sort = "項目A DESC, 選択されている項目 ASC"
> DataGrid.DataSouce = DataView
>
> と記述しているのですが、なぜか選択されている項目だけソートをしているような
> 気がします。
> デバッグで確かめたところ、デバッグだとうまくソートしてくれます

 この MouseDown イベントでは、列ヘッダをクリックしたときにソート処理を行うように
しているのではないでしょうか?
 もしそうでしたら『デバッグだとうまくソート』されるのではなく、一度望む形でソート
された後に標準の動作によって再度ソートされなおしてしまっているのだと思われます。
# マウスを押下したまま離さずにいると、きちんと表示されていません?

 ここまでの前提があっていたら、の話になるのですが‥‥
 標準の列ヘッダクリックを無効にして、替わりに自分のソート処理を書いてあげれば
うまくいくのではないかと。

 次のサイトに列ヘッダクリックを無効にするサンプルがありましたので、これを応用して
みて下さいませ。
# 的外れでしたらごめんなさいm(__)m

5.3 How do I prevent sorting a single column in my DataGrid?
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q1083q




# 以下余談です。

 スクリプトというとコンパイルをせずに実行するプログラム、という印象を受けますので
ソースとかコードとかいう表現を使った方が良いかも知れません。<いや、自分が違和感を
憶えたというだけなのですけど(^_^;)
http://e-words.jp/w/E382B9E382AFE383AAE38397E38388.html

‥‥と思ってたら
http://yougo.ascii24.com/gh/62/006280.html
という解説もあるんですね。勉強になりました(^^)

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