Asp.net 如何在母版页cs文件中实例化用户控件
我已经在母版页的contentplace holder中添加了uc,但是如何在母版页加载时实例化母版页.cs文件中的用户控件,使其可见?如果将其添加到ContentPlaceHolder,并且子页将内容添加到该ContentPlaceHolder,则您的用户控件将不再显示。注意,您添加的控件只是默认控件Asp.net 如何在母版页cs文件中实例化用户控件,asp.net,.net-3.5,master-pages,user-controls,Asp.net,.net 3.5,Master Pages,User Controls,我已经在母版页的contentplace holder中添加了uc,但是如何在母版页加载时实例化母版页.cs文件中的用户控件,使其可见?如果将其添加到ContentPlaceHolder,并且子页将内容添加到该ContentPlaceHolder,则您的用户控件将不再显示。注意,您添加的控件只是默认控件 如果您希望它始终可见,只需将其添加到ContentPlaceHolder之外。我不确定,但我认为您需要使用Page.LoadControl()在运行时将用户控件正式加载到页面。如果我读得正确,母
如果您希望它始终可见,只需将其添加到ContentPlaceHolder之外。我不确定,但我认为您需要使用Page.LoadControl()在运行时将用户控件正式加载到页面。如果我读得正确,母版页中有一个控件,需要从子页引用该控件以更改其可见性?还是我把事情搞错了 无论如何,下面是我在VB.Net中常用的方法,移植应该不会太难;-) 在aspx页面中:
<%@ Reference Control="~/path/to/my/customControl.ascx" %>
在运行时加载的用户控件需要加载LoadControl,而不是“new MyUserControl”,因为否则控件的标记不会被解析,控件的子对象也不会被实例化。这将导致意外情况,如意外的空控件和恢复viewstate时出现问题。但无论如何,对于这个特殊的问题,我认为这正是马克·布莱克特所说的。。。母版页上ContentPlaceHolder中的内容将被子页相应内容标记中的内容替换(除非内容页忽略了提到的相应标记)。。。母版页上放置在ContentPlaceHolder内的任何标记都将用作默认内容,但通常会被内容页的相应内容标记内的标记替换,除非内容页忽略了此类相应的内容标记。
Dim customControl As ASP.customcontrol_ascx = Master.FindControl("customControl")
If customControl IsNot Nothing Then
...
End If