GridViewにコードを設定し、データソースをクエリによって返されたデータセットに設定します。だから明らかにsortingとpagingは、私がdatasourceid = some sqldatasourceを使う場合のように魔法のように動作しません。グリッドビューの並べ替え:毎回再読み込みする必要がありますか?
私はWeb上でこれを行う方法の例をいくつか見つけましたが、それらはすべて毎回クエリを再実行するようです。クエリの内容をビューの状態で保存するべきではありませんか?以前のクエリ結果を取得し、データベースに戻らずに再ソートする方法はありますか? (ビューの状態ですべてのデータを保存していますか?そうであれば、なぜ私はそれにアクセスできないのですか?ユーザーのブラウザにすべて送信し、すべての帯域幅を無駄にする私がページングを許可しようとすると、ユーザーが別のページに行くたびに再度クエリを実行する必要があります。ユーザーが並べ替えてからページを並べ替えると、ソート順が隠しフィールドなどにあることを覚えておく必要があるので、データを再読み込みして並べ替えて、正しいページに移動できます。
データソースコントロールを使用すると、この動作がすべて組み込まれているため、ここでは何か不足していると考えられます。しかし、私が何かを見逃していると、この遅い、ハードな方法でそれを行うすべての例を与え、他の多くのプログラマもそれを見逃しています。
「魔法のような」とは、データソースコントロールを使用すると、ページングや並べ替えを実装するためのコードを書く必要がないということです。 。 – Jay
はい、私はセッションデータの使い方を知っていますが、私は本当にこのようなアイデアを嫌いです。データが消えないときにデータを破棄する信頼できる方法はありませんrが必要となるため、永遠に浮かび上がってしまい、ユーザが画面の2つのインスタンスを同時に開くことができれば、問題にぶつかります。ビューステートでの保存は可能ですが、帯域幅は倍になります。ワイヤを介して戻って来るデータを読む時間は、多くの、たぶんほとんどの場合、データベースを再クエリーするのに必要な以上になります。だからそれは可能だと確信しているが、それほど美しいものではない。 – Jay
OK私はあなたが言っていることを見ています...個人的には、データソースコントロールを使用するのが嫌です。なぜなら、ボンネットの下で何が起こっているのか抽象度が高いからです。ViewStateは理想的ではありません。データの破棄をより信頼できるものにするために時間を費やすことができれば、セッションはおそらく道のりです。 – markp3rry