2011-12-14 15 views
1

Webサービスから厳しいクエリを返したいと思っているクライアントがあります。彼らは、クエリが絶対にすべてを返すことができなければならないことを強く要求しています。また、サーバー側のページングを何ら行うこともできません。ASP.NET GridViewのクライアント側のページ番号

すべてのデータが正常に返されるように、ASP.NET GridViewに表示します。巨大なグリッドのレンダリングを高速化するために、私たちはクライアント側のページングを実装することに決めましたが、これについてどうやってどうやって行くのかは正確には分かりません。

現在のところ、ViewStateにデータ全体を格納してから、それに基づいてページとソートを行い、サーバーに再度ヒットしないようにします。

しかし、デフォルトの設定では、最初のページを選択しようとすると、404エラーが返されます。これは、ViewState経由で膨大なデータセットを送信しようとするとタイムアウトするためです。

データセットを返す方法はありますか?また、ポストバックを行うことなく、すべてのページングとソートをクライアントで行うことができますか?それとも私たちが考えなかったこれを行うための他の方法がありますか? (サーバー側のページング以外に、それはそう明らかに正しい方法ですが、クライアントはびくともしませんので、我々はこのようにそれを行うのが大好きだ...)

EDIT:私はASPに固執したいと思います可能であれば、.NET GridViewコントロール。 jQueryなどのいくつかのオプションがありますが、異なるタイプのコントロールに変更する場合は、変更する必要があります。だから私は可能な限りそれを変更しないでください。

+1

Javaスクリプトベースのグリッドを使用してください。あなたがJQuery [dataTable](http://www.datatables.net/)で大丈夫なら、うまくいくでしょう。 –

+0

部分的なポストバックはAJAXの制限がありますか?または完全なポストバックだけですか? – jadarnel27

+0

AJAXはまったく問題ありません。何かは本当にオプションです。データベースと再び話す必要がない限り、何でも可能です。 – Jimmy

答えて

2

私たちは、あなたのオプションが含まれていないいくつかの詳細に大きく依存

...のViewState自体がパフォーマンスの問題になるような状況に遭遇して、似たような状況に対処する方法を考え出すしなければなりませんでした質問に。

たとえば、どのくらいの頻度でWebサービスからのデータが変更されますか?あなたは、次のいずれかの操作を実行することができる場合があります

  • は、XMLファイルに結果をシリアル(...結果がその大きい場合ではない良いアイデア)キャッシュやセッションで

    • 保存結果をとページング中にそのデータを読み取る
    • データをSQLデータベースまたはSQLデータベースの一時表に定期的にインポートします。データはユーザーに関連付けられます。
  • +0

    これは興味深い考えです。クエリを実行するたびにデータが変更される可能性があります。 – Jimmy

    +0

    どこにXMLファイルを保存することをお勧めしますか? – Jimmy

    +0

    私たちはアプリケーションの外部に設定された特別なフォルダに保存します。そのため、アプリケーションが更新された場合、そのファイルは失われません。ネットワークサービスアカウントがフォルダに対して「変更」権限を持つようにアクセス許可を設定する必要がありますが、それ以外はかなり簡単です。結果をシリアライズすることがどれほど難しいかは、Webサービスから戻ってくるものによって異なります。 – David

    3

    データベースからすべてのレコードを取得するのに時間がかかりませんでした。クライアント側では、グリッドは通常、HTMLテーブルとしてレンダリングされます。 jqueryプラグインを使用して、クライアント側のテーブルをページ付けします。

    http://www.codeproject.com/KB/webforms/clientside_gridviewpaging.aspx

    +0

    このスクリプトは、このクライアント側のソートスクリプトと組み合わされて、質問の内容を確認する必要があります。http://beyondrelational.com/blogs/hima/archive/2011/01/01/client-side-sorting-in-asp- net-grid-view-using-jquery.aspx – Yoshi

    +0

    このソリューションを自分で実装しましたか?クリエイターのウェブサイトで少しでも掘り下げた後でさえ、私はそれを動作させるのに苦労しています。 – Jimmy

    +0

    あなたの問題が何であるか正確にはどうでしたか –

    0

    私はjqueryのtablesorterプラグインを使用して幸運を持っていました。それはいくつかの素晴らしいオプションを提供します。

    http://tablesorter.com/docs/

    関連する問題