0

ユーザーコントロールを動的にロードするaspxページがあります。これらのコントロールを(毎回1つずつ)保持するUpdatePanelがあります。コントロールを別のコントロールに変更すると、次のメッセージが表示されて失敗します。

ビューステートのロードに失敗しました。ビューステートがロードされるコントロールツリーは、前のアプリケーションでビューステートを保存するために使用されたコントロールツリーと一致する必要があります。たとえば、コントロールを動的に追加する場合、返品時に追加されるコントロールは、最初のアプリケーション中に追加されるコントロールのタイプと位置と一致する必要があります。

3つのコントロールはすべて。から継承しSystem.Web.UI.UserControlます。たぶん私は問題を解決することができます:

  1. 開始時に3つのコントロールをロードし、必要に応じて2つを非表示にします。
  2. ユーザーコントロールごとに1つずつ、合計3つのUpdatePanelを使用します。
  3. 何かアドバイス?
4

2 に答える 2

0

ポストバックモードを条件付きに設定し、手動で更新して、ポストバックが不要なパネルを更新していないことを確認します。

于 2010-01-25T13:38:21.883 に答える
0

ユーザーコントロールを動的に追加する場合、idプロパティを割り当てていますか?そして、ポストバック時に、idプロパティを同じ値に設定して、コントロールを再度追加しますか?

于 2010-01-25T16:37:26.037 に答える