2011-07-14 21 views
2

私たちはかなりの量の情報(100sまたは行と列)を持つgridviewを持っています。asp.net webforms ajax update gridview

現在、私たちが行ったパフォーマンス上の問題を修正するために、gridviewにはedittemplateがなく、代わりにセルをダブルクリックすると、webmethodsを使用して取得され、オプションが選択された後に動的にjqueryを使用して取り込まれるドロップダウンで、htmlの値を選択したオプションの値に設定します。

この変更をサーバーに送信する際に問題が発生しました。ページに、サーバーへのポストバックを引き起こすボタンがありますが、jquery機能による変更は使用できませんグリッドビュー項目は以前と同じ値を持ちます。

私たちは、これをどのように達成することができますか?別に

:私たちは、おそらく、グリッドの境界を制限する必要があります知っているが、現時点ではこれは、私は問題が戻って、それがビューステートからデータをリロード後の時だと思うオプション

+0

ページネーションは実装されていますか?パフォーマンスの問題全体への質問と同じです。 –

+0

現在のところページネーションはありません。残念なことに、ユーザーは実際に何が起こっているのかについて適切なアイデアを得るためにすべてのデータを一度に見る必要があります。 –

答えて

1

GridViewをネイティブに操作すると、つまり、編集テンプレートを処理させるときに、ViewStateがシーンに入り込み、うまく動作します。しかし、グリッドを手動で操作すると、関連する場所に変更が反映されず、サーバーに同じ値が設定されます。あなたは、jQuery経由でdblclickの値を取得すると言っています。なぜあなたはぼかしの行を更新しないのですか?つまり、ユーザーが次の行に行くときは、Ajax経由で現在のレコードを更新するだけです。それが最も安全なアプローチです。 TelerikのRadTreeで同じ経験をしたことがありました。あなたべき:クライアント側のAPIは、あなたのコントロールのために提供

  1. 使用、または
  2. ネイティブな方法で台無しにしない、あなたのコントロールの動作、単に表示目的のために動作するようにポストバック、または
  3. 使用コントロールを期待しながら、しかし操作のために、AJAXを使用してください。
0

ではありません。私たちは、jqueryダイアログに物を読み込んでそれを使って更新を行うためにWebメソッドを使いました。そして成功した保存の後、変更を反映するようにグリッドを更新しました。

0

私は、このコード「フレームワーク」http://www.codeproject.com/KB/ajax/AJAXWasHere-Part1.aspxを発見し、それは修正/ ViewStateのを再作成し、あなたはまだASP.NETのイベントモデルを使用できるようにAJAX要求とそれを提出します。これは、MSが.NET 2.0で自身をリリースする前のAJAXの作業でした。

mootools JSライブラリと組み合わせて使用​​するので、JQueryでの使用には問題はありませんが、JQueryとして「CallBackObject」を書き換えない限り、JQuery AJAXメソッドを使用することはできません。プラグイン。

ありがとうございます

2

パフォーマンスを向上させたい場合は、使用しないでください。

  1. のUpdatePanel
  2. のScriptManager
  3. GridViewの

私はあなたがこれらすべてを使用している推測しています。

Use jQuery to directly call ASP.NET AJAX page methodsでも、ScriptManagerをまったく使用することはできません。これをjQuery Gridの推奨事項(hereおよびhere)の機能と組み合わせてください。私はDataTablesで快適ですが、私はもっと多くのことについて聞いていますSlickGrid。あなたは試してみる必要があります。

すべてがクライアントサイドであるため、ポストバック中に価値が失われることはありません。

また、you should not use UpdatePanel at allを強くお勧めします。しかし、それは私だけです。