回答編集履歴

2

追記

2021/05/19 02:44

投稿

退会済みユーザー
test CHANGED
@@ -71,3 +71,57 @@
71
71
 
72
72
 
73
73
  ![イメージ説明](dae61f4f65a0b0f3f69fd3570efd0634.jpeg)
74
+
75
+
76
+
77
+ **【追記】**
78
+
79
+
80
+
81
+ 下のコメント欄の 2021/05/19 09:37 の質問者さんのコメントに対するレスです。
82
+
83
+
84
+
85
+ > ORDER BY句を追加したselectcommandを、onsortingイベント内でhiddenfieldに代入し、pageloadでhiddenfieldからselectcommandを改めて読みこんでいる
86
+
87
+
88
+
89
+ なるほど、それは良い考えですね。それならページングも編集も問題なくできそうです。
90
+
91
+
92
+
93
+ HiddenField を使ったとのことですが、ViewState を使う方が ASP.NET Web Forms アプリとしては保守性場度を考えると良さそうです。
94
+
95
+
96
+
97
+ > 改めてSortedAscendingHeaderStyleが適用される方法を考えたいと思いますが、
98
+
99
+
100
+
101
+ ASP.NET の内部でどのようにしているのか分かりませんが、ソート対象にしたヘッダに動的に css を適用しているような感じです。
102
+
103
+
104
+
105
+ 例えば、今回のような細工はせず、以下の記事のように普通にソートとそのための css を設定すると、
106
+
107
+
108
+
109
+ ASP.NET 4.0のGridViewの新しい並べ替えスタイル
110
+
111
+ [https://codezine.jp/article/detail/5012?p=2](https://codezine.jp/article/detail/5012?p=2)
112
+
113
+
114
+
115
+ ヘッダのリンクをクリックすると以下の画像のように css が適用されます。
116
+
117
+
118
+
119
+ ![イメージ説明](07229c6c4a8afe1122a88fcb509ffd8a.jpeg)
120
+
121
+
122
+
123
+ 今回のような細工をするとそれが設定されないので、自力で同様に css が設定されるようにコーディングする他なさそうな気がします。
124
+
125
+
126
+
127
+ 思いつくのは、JavaScript か、サーバー側で行うなら RowCreated イベントのハンドラで、対象のヘッダを探して css を適用することです。

1

追記

2021/05/19 02:44

投稿

退会済みユーザー
test CHANGED
@@ -58,8 +58,16 @@
58
58
 
59
59
 
60
60
 
61
- 実行結果は以下のようになります。ページング、編集は問題なく可能です。ただし、GridView のヘッダのリンクボタンをクリックすると (3) の結果「1→10→2→20→30→あいうえお」になってしまいますが。
61
+ 実行結果は以下のようになります。ページング、編集は問題なく可能です。ただし、GridView のヘッダのリンクボタンをクリックすると (3) の結果になってしまいますが。
62
62
 
63
63
 
64
64
 
65
65
  ![イメージ説明](20c842c981b49e96a1d82678adcf5a3e.jpeg)
66
+
67
+
68
+
69
+ 例えば、上の画像でヘッダの Info1 をクリックすると以下のようになります。もう一度クリックすると昇順降順が入れ替わります。
70
+
71
+
72
+
73
+ ![イメージ説明](dae61f4f65a0b0f3f69fd3570efd0634.jpeg)