クエリによって返されたデータセットにデータソースを設定して、GridView にコードを設定しています。したがって、datasourceid = some sqldatasource を使用する場合のように、並べ替えとページングが魔法のように機能するだけではないようです。
ウェブ上でこれを行う方法の例をいくつか見つけましたが、それらはすべて毎回クエリを再実行するようです。クエリの内容をビューステートに保存するべきではありませんか? データベースに戻らずに、以前のクエリ結果を取得して再ソートする方法はありますか? (すべてのデータをビュー ステートに保存しているのですか? もしそうなら、なぜ私はそれに到達できないのですか? すべてをユーザーのブラウザに送信し、すべてを送り返し、すべての帯域幅を浪費するのはかなりばかげているようです。たどり着く方法。)
また、ページングを許可しようとすると、ユーザーが別のページに移動するたびにクエリを再実行する必要があるようです。また、ユーザーが並べ替えてからページを表示する場合、非表示フィールドなどの並べ替え順序を覚えておく必要があるため、データを再読み取りし、再並べ替えしてから、正しいページに移動できます。
データ ソース コントロールを使用すると、このすべての動作が組み込まれていることを考えると、ここで何かが欠けていると思います。しかし、このように遅くて難しい方法でそれを行うすべての例を考えると、私が何かを見逃している場合、他の多くのプログラマーもそれを見逃しています.