以下代码不会将控件添加到 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 参数。