サーバー コントロールを作成しています (CompositeControl から継承)。
コントロールは、いくつかのデータ バインドされたドロップ ダウン リスト (およびいくつかのテキスト ボックスなど) で構成されます。
ドロップダウンリストは階層を形成するため、互いに依存しています...例
ddl国
-ddlCounty
--ddlCity
ddlCountry が選択されている場合、これにより ddlCounty のリストが更新されます... ddlCity などで同様に更新されます。
コントロール内の ddlCountry の値にアクセスしたいので、それに応じて 2 番目の ddl (ddlCounty) のデータ ソースを設定できますが、CreateChildControls() では、ビューステートは ddlCountry ユーザー選択をまだコントロールにロードしていないようです。 、だから私は空の文字列を取得します。
これらの ddl 値をパブリック プロパティとして提供する必要もあります。
ReCreateChildControls() などを使用すると、これはかなり面倒です...これは間違っていると確信しています。
私の質問: 誰でも、このサーバー コントロールを作成するために遵守する正しいパターン/一連のルールを提案できますか
例えば
- コントロールの初期化 OnInit
- OnLoad での DataBind
- 任意のプロパティの先頭に、EnsureChildControls() を置きます: get または set
これを実装する正しい方法があるに違いないと思いますが、標準コントロールに期待されるようにこれを機能させるためのドキュメントや例が見つかりません。
ありがとう