0

次のコードは、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 パラメータを取得できます。

4

1 に答える 1