次のコードは、aspx プレースホルダーにコントロールを追加しません。
var control = new ASCXControl { ID="searchFilters", Filters = filters };
var placeholder = Utility.FindControlRecursive(Page, "rightColumnSearchFilters") as PlaceHolder;
if(placeholder != null){
placeholder.Controls.Add(control);
placeholder.Visible = true;
}
デバッグ時に、プレースホルダーが見つかり、コントロールがブロックに入った後にプレースホルダー コントロール コレクションに追加されたように表示されますが、ページのプレースホルダーに何も表示されません。
現在、表示する必要があるフィルターを見つけるために、コントロールに変数を渡す必要があります。コントロール間で変数を渡すのは好きではありませんが、他に方法はありません。
コントロールがレンダリングされない原因は何ですか? これを行うより良い方法はありますか?
編集:
ascx 内の HTML をレンダリングしようとしています。コントロールの Page_Load 内で Filters パラメータを取得できます。