ユーザーの設定に応じて、他のユーザーコントロールを動的に追加するユーザーコントロールがあります。オーバーロードされたLoadControlメソッドでコントロールを追加する際に問題があります。コンストラクタを使用してユーザコントロールを動的に作成できますか?
は、私はこれをやってみました:
ddControl = typeof(DropDownControl), new object[] { testData, FilterModel.Models[i] });
しかし、ddControlのコントロールのいずれも初期化されなかったと私はそれが含まれているコンボボックスにデータソースを設定しようとしたとき、それが爆発しました。私は、モデルやなどのプロパティ、デフォルト値、私は
(DropDownControl)LoadControl("~/WebUserControls/DropDownControl.ascx")
、またはできのようなコントロールを作成した後、モデル値をロードするLoadModel()メソッドを作成する必要がありますかを設定しますコンストラクタにデータソースに渡します私はそれを動的に宣言しながら、何とかそのコンストラクタを通してすべてを行いますか?
これが明確でない場合は、どうすればいいか教えてください。ありがとう!
ウェブフォームとユーザーコントロールは、コンストラクタインジェクションにアレルギーがあります。あなたの最善の策は、注入を行うために 'LoadControl'の後に呼び出すメソッドを追加することです。 –