質問

通信する2つのWebパーツがあります。プロバイダーは、少なくともプロバイダーのPage_Loadイベントが発生するまで、コンシューマーに値(RID)を提供できません。そのため、消費者はPage_Loadが完了するまで、必要なRIDを知ることができません。そこで、Page_LoadCompleteにフックしました。問題があります。コンシューマは、このRIDに基づいて動的なコントロールを作成します。

今。これらの動的に作成されたコントロールは、Page_Loadの後に作成されます。そのため、それらのビューステートは復元されません(Page_Load内で作成された動的コントロールには値が復元されます)。

したがって、基本的に必要なのは、手動でビューステートをコントロールに復元する方法、またはPOST変数またはC#の同等物からコントロールの値を取得する方法です。

また、Page_Initでコントロールの値を取得できれば、それも機能します。

役に立ちましたか?

解決

Request.Formキー/値ペアの投稿から返されるすべての情報。そこをチェックして、キーでコントロールIDを検索すると、ビューステートを見ずに値を取得できます。

キーは指定したIDではなくクライアントIDになるため、各キーを調べて、コントロール名を含むキーを検索する必要があります。

他のヒント

コントロールが動的な場合、ポストバックが発生するまでViewStateになりません。したがって、ViewStateは、自分でViewStateに追加しない限り、初期ロードでは使用できません。

ViewState.Add("myRID", RID)

または、ViewStateは、とにかく大きくなりがちなので、ViewStateをオーバーロードしないでSessionStateに保存できます。 SessionStateを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top