2

カスタムのページングと並べ替えにストアド プロシージャを使用する GridView があります。
問題はありません (ページングと並べ替えの両方) ですが、問題は、次のように ObjectDataSource でキャッシュを有効にする場合です。

 EnableCaching="True"

ユーザーがアクセスするすべてのページを適切にキャッシュしますが、この場合、ユーザーが並べ替えようとするとエラーが発生します(ただし、 EnableCaching ="False" の場合は正常に機能します:

The data source 'ObjectDataSource1' does not support sorting with IEnumerable data. Automatic sorting is only supported with DataView, DataTable, and DataSet.

キャッシュを有効にしたときに並べ替えが機能するようにするにはどうすればよいですか。

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

4

3 に答える 3

2

キャッシュが有効になっている場合、select メソッドが実行されると、Selecting イベントが発生する前にキャッシュがアクセスされ、検索しているデータがキャッシュ内にある場合、select メソッドはキャッシュされたデータを返します。

そのため、Selecting イベントで入力パラメーターの前処理 (例: 並べ替え) を行っている場合、作成されたキャッシュ キーは選択パラメーター (およびその値) とページング値 (キャッシュが動作するため) のみに依存するため、キャッシュは機能しません。ページング)。また、並べ替えパラメーターがある場合、キャッシュは機能しないことに注意してください。

ここをクリックして詳細を読む

于 2009-12-29T11:39:49.360 に答える
0

これが私のレビューです:

EnableCaching=trueを持つObjectDataSourceを使用してページ付けと並べ替えを最適化する

于 2010-02-15T09:35:53.770 に答える
0

この投稿はどうですか-

http://forums.asp.net/p/1509071/3676014.aspx#3676014

私は次の2つのURLからリードを得ました:

http://www.codeproject.com/KB/aspnet/GridViewObjectDataSource.aspx http://forums.asp.net/t/1344883.aspx

これらの両方の例で、ODS(Objデータソース)の並べ替えを処理する一般的な並べ替えルーチンを実装しました。これにより、ODSキャッシュプロパティを設定できます。

EnableCaching="True"

専門家の意見はありますか?

PS:パフォーマンスを向上させるために、ODSとそのO​​DSを使用するGridViewの両方でビューステートを無効にし、ODSでキャッシュをオンにしました。

于 2010-02-12T11:42:17.143 に答える