0

ASP.NET 動的データを使用して、かなり複雑な Web フォームを作成しています。コントロール間に依存関係があるため、このフォームのコントロールのいくつかはポスト バックします。ポストバックごとにビューステートが大きくなっていることに気付きました.5時くらいまでは、Renderプロセスとページが実際にWebブラウザに読み込まれるまでに長い遅延があります.

これは、フォームにデータやその他の変更を入力せずに、ラジオボタンをクリックしてポストバックを発生させた場合でも発生します...

動的データを使用しない古いバージョンのフォームをチェックしましたが、ビューステートはまったく成長しません...そのため、動的データコントロールが何らかの原因であると理論付けています...

他の誰かがこれを見ましたか?それに対する修正はありますか?

4

2 に答える 2

3

あなたの質問に対する直接の答えはわかりませんが、おそらくこれらのツールの1つがさらに診断するのに役立つかもしれません。

(1)FritzOnionのViewStateDecoderツールは、そこに何が詰め込まれているのかを把握するのに役立つ場合があります。ViewSateデコーダーは、Pluralsightツールページにリストされています。直接ダウンロードリンク:ViewStateDecoder22.zip

ViewStateデコーダーのスクリーンショットhttp://alt.pluralsight.com/images/decoderscreenshot.gif

(2)一見の価値があるかもしれない別のツールはASP.NETViewStateヘルパーです:

"[...] ASP.NET ViewState Helperは、すべてのWeb開発者を支援するように設計されていますが、ASP.NET開発者がViewStateの問題をデバッグするのに役立つ特定の機能を備えています。InternetExplorer6.0またはより高い。[...]」

于 2009-06-30T23:49:09.073 に答える
2

さて、犯人は Telerik の RadComboBox でした。より具体的には、RadComboBox を使用した動的データがサポートされていないことが原因でした。さらに具体的に言うと:

DynamicData で RadComboBox を使用するための回避策は、visible を false に設定した DropDownList を用意し、その DDL で PopulateListControl を呼び出してから、項目を RadComboBox にコピーすることです。

これは、すべてのポストバックでそれを行う場合を除いて、正常に機能します...そのようにすると、リスト全体がビューステートに詰め込まれると思います.ポストバックごとにそれを行っていたので...ビューステートは成長し続けました.

于 2009-07-21T13:56:43.323 に答える