teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2021/05/19 02:44

投稿

退会済みユーザー
answer CHANGED
@@ -34,4 +34,31 @@
34
34
 
35
35
  例えば、上の画像でヘッダの Info1 をクリックすると以下のようになります。もう一度クリックすると昇順降順が入れ替わります。
36
36
 
37
- ![イメージ説明](dae61f4f65a0b0f3f69fd3570efd0634.jpeg)
37
+ ![イメージ説明](dae61f4f65a0b0f3f69fd3570efd0634.jpeg)
38
+
39
+ **【追記】**
40
+
41
+ 下のコメント欄の 2021/05/19 09:37 の質問者さんのコメントに対するレスです。
42
+
43
+ > ORDER BY句を追加したselectcommandを、onsortingイベント内でhiddenfieldに代入し、pageloadでhiddenfieldからselectcommandを改めて読みこんでいる
44
+
45
+ なるほど、それは良い考えですね。それならページングも編集も問題なくできそうです。
46
+
47
+ HiddenField を使ったとのことですが、ViewState を使う方が ASP.NET Web Forms アプリとしては保守性場度を考えると良さそうです。
48
+
49
+ > 改めてSortedAscendingHeaderStyleが適用される方法を考えたいと思いますが、
50
+
51
+ ASP.NET の内部でどのようにしているのか分かりませんが、ソート対象にしたヘッダに動的に css を適用しているような感じです。
52
+
53
+ 例えば、今回のような細工はせず、以下の記事のように普通にソートとそのための css を設定すると、
54
+
55
+ ASP.NET 4.0のGridViewの新しい並べ替えスタイル
56
+ [https://codezine.jp/article/detail/5012?p=2](https://codezine.jp/article/detail/5012?p=2)
57
+
58
+ ヘッダのリンクをクリックすると以下の画像のように css が適用されます。
59
+
60
+ ![イメージ説明](07229c6c4a8afe1122a88fcb509ffd8a.jpeg)
61
+
62
+ 今回のような細工をするとそれが設定されないので、自力で同様に css が設定されるようにコーディングする他なさそうな気がします。
63
+
64
+ 思いつくのは、JavaScript か、サーバー側で行うなら RowCreated イベントのハンドラで、対象のヘッダを探して css を適用することです。

1

追記

2021/05/19 02:44

投稿

退会済みユーザー
answer CHANGED
@@ -28,6 +28,10 @@
28
28
 
29
29
  ![イメージ説明](e1e5d3c10ce72447f4e38cdc4760fc1e.jpeg)
30
30
 
31
- 実行結果は以下のようになります。ページング、編集は問題なく可能です。ただし、GridView のヘッダのリンクボタンをクリックすると (3) の結果「1→10→2→20→30→あいうえお」になってしまいますが。
31
+ 実行結果は以下のようになります。ページング、編集は問題なく可能です。ただし、GridView のヘッダのリンクボタンをクリックすると (3) の結果になってしまいますが。
32
32
 
33
- ![イメージ説明](20c842c981b49e96a1d82678adcf5a3e.jpeg)
33
+ ![イメージ説明](20c842c981b49e96a1d82678adcf5a3e.jpeg)
34
+
35
+ 例えば、上の画像でヘッダの Info1 をクリックすると以下のようになります。もう一度クリックすると昇順降順が入れ替わります。
36
+
37
+ ![イメージ説明](dae61f4f65a0b0f3f69fd3570efd0634.jpeg)