Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在母版页cs文件中实例化用户控件_Asp.net_.net 3.5_Master Pages_User Controls - Fatal编程技术网

Asp.net 如何在母版页cs文件中实例化用户控件

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()在运行时将用户控件正式加载到页面。如果我读得正确,母

我已经在母版页的contentplace holder中添加了uc,但是如何在母版页加载时实例化母版页.cs文件中的用户控件,使其可见?如果将其添加到ContentPlaceHolder,并且子页将内容添加到该ContentPlaceHolder,则您的用户控件将不再显示。注意,您添加的控件只是默认控件


如果您希望它始终可见,只需将其添加到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