コード ビハインドでサーバー コントロール プロパティに値を割り当てて、フォームを「初期化」したいと考えています。これらの値をビューステートに追加する必要はありません。(特定のコントロールのビューステートを無効にできることはわかっていますが、一部の値が変更される可能性があり、ポストバック中に保持する必要があるため、ビューステートが必要です。)
現時点では、これらの値をビューステートに追加せずにコードにロードすることはできないようです。
私が理解しているように、次のことが起こります。
ページ: PreInit
ここでいくつかのコントロールに値を追加できます(たとえば、テキスト値を設定するためのリテラルコントロールで機能します)が、コントロールのinitメソッドは後で実行されるため、たとえば、この段階ではまだRegisterUserコントロールとその子コントロールを見つけることができません。まだヌル。> この特定のケースでは解決策がなく、さらに多くのケースがあります
コントロール: 初期化
ページ内からこのポイントに到達できません。これは、ユーザー コントロール コード内でのみ使用できます。たとえば、独自のユーザー コントロールを作成し、その値を初期化したい場合などです。もちろん、必要なコントロールごとに独自のコントロールを作成したくありません。最初にいくつかのロジックを実行して初期化します。
コントロール: TrackViewState
Viewstate Tracking が有効になっているので、これ以降、設定したものはすべて「ダーティ」としてマークされ、viewstate に追加されます。ページ:Init ページ:TrackViewState
ですから、私は次のように言っています。
コード ビハインドでは、コントロールのビューステート プロパティを無効にせずに..
- ビューステートに値を追加せずに、PreIinit メソッドでページ コントロールから「第 1 レベル」の子コントロール プロパティを初期化できます。
- ビューステートに値を追加せずに、ページの「第 1 レベル」の子コントロールであるコントロールから子コントロールのプロパティを初期化することはできません。?
それで、
- リソースを使用してコントロール プロパティを宣言的に初期化できますが、これによってロジックを実行する必要があるシナリオを回避することはできません。
- データバインディング構文を使用してロジックを実行できますが、上記と同じ問題を持つコントロールで手動でデータバインドを呼び出す必要があります
これらの値をビューステートに追加せずに、一連のコントロール/子コントロールを反復し、コード ビハインドで値を開始する方法はありませんか?