- PR -

DataGridでソートができない

1
投稿者投稿内容
うみの
常連さん
会議室デビュー日: 2006/08/23
投稿数: 20
お住まい・勤務地: 千葉・埼玉
投稿日時: 2006-11-01 15:34
Visual Studio .NET 2003にてウェブアプリを開発しています。

DataGridで一覧表示している画面にソート機能を付けているのですが、Datagridのタイトル部分をクリックすると、DatagridのプロパティでSortCommandに設定しているメソッドに処理が飛ばず、ItemCommandに設定しているメソッドに処理が飛んでしまう現象が発生しています。

デザイナのプロパティでは正しくイベントハンドラの設定を行っています。
また、InitializeComponent()の中身も確認しましたが、正しくイベントハンドラの設定が行われているようです。
同じシステムの別のページでは正しく動いているのですが、どなたか同じ現象に遭遇された方はいらっしゃいませんでしょうか?

●試したこと●
DatagridのプロパティでItemCommadの設定をはずすと正常に動作します。
InitializeComponent()の中の
 DataGrid.ItemCommand += ・・・
の部分をコメントアウトすると正常に動作します。

※PageindexChangeでも同じ現象が発生します・・・
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-11-01 15:40
DataGrid内でのボタンクリック等のイベントは、まずItemCommandが呼ばれ、その後で
各SortCommand等のイベントが呼ばれるのではなかったかと思います。
ItemCommandの中の処理を一時的にコメントアウトしてみて動作を確認してみては
どうでしょう。
うみの
常連さん
会議室デビュー日: 2006/08/23
投稿数: 20
お住まい・勤務地: 千葉・埼玉
投稿日時: 2006-11-01 15:57
ご回答ありがとうございます。

>まずItemCommandが呼ばれ、その後で各SortCommand等のイベントが呼ばれるのではなかったかと思います。

この動作は知りませんでした。アドバイス通りItemCommanの中身を見直したところ、e.CommandNameの判定をしていませんでした。ここを修正したところ、正常に動作するようになりました。

ソートとページング以外でボタンが一種類しかなかったので判定をはしょっていたのですが、きちんと判定をいれないとダメなんですね。。。 勉強になりました。

ありがとうございました。
1

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