如何在LoadControl调用中引用类类型?

时间:2011-10-19 18:09:49

标签: c# asp.net loadcontrol

在这个动态加载用户控件的示例中,如何声明“TimeDisplay”?这可以在后面的代码中完成,还是在ascx页面中完成?这是一本书中的一个例子,我想有关于代码文件相对于彼此的位置的假设?

protected void Page_Load(object sender, EventArgs e) 
{ TimeDisplay ctrl = (TimeDisplay)Page.LoadControl("TimeDisplay.ascx"); 
PlaceHolder1.Controls.Add(ctrl); 
}

2 个答案:

答案 0 :(得分:1)

您需要在aspx页面中添加对该控件的引用:

<%@ Reference Control="~/Controls_Path/TimeDisplay.ascx" %>

答案 1 :(得分:0)

要在标记中声明控件,您需要在页面指令或web.config中注册控件。在web.config中注册控件通常是可取的,因为您可以在应用程序的任何位置使用控件。

配置方法:

<pages>
    <controls>
        <add tagPrefix="uc1" src="~/controls/myusercontrol.ascx" tagName="myusercontrol" />
    </controls>
</pages>            

页面指令方法:

<%@ Register TagPrefix="uc1" TagName="MyUserControl" Src="~/controls/myusercontrol.ascx" %>