如何在没有Page的情况下加载控件?
public void Something()
{
var ascx = /*LoadControl*/("my.ascx"); // being Page = null
var ctl1 = ascx.Controls[0];
var ctl2 = ascx.Controls[1];
}my.ascx:
<%@ Control Language="C#" %>
<asp:Literal ID="ctl1" runat="server" />
<asp:Label ID="ctl2" runat="server" />发布于 2010-07-23 05:08:52
您可以通过以下方式从HttpContext获取页面对象:
Page page = HttpContext.Current.Handler as Page;
if (page != null)
{
// Use page instance to load your Usercontrol
}发布于 2011-08-27 01:17:55
如果没有页面实例,您可以随时创建一个新实例:
(Page ?? new Page()).LoadControl(...)发布于 2010-07-23 20:21:37
LoadControl不是Page的方法,它是Control类的方法。
您可以只在控件中使用LoadControl()而不是Page.LoadControl()
https://stackoverflow.com/questions/3313324
复制相似问题