Pet*_*aud 7 .net c# vb.net asp.net
我有一个继承自Page的基页类.我们称之为SpiffyPage.
我还有一个名为SpiffyControl的用户控件.
然后我有一个aspx页面,ViewSpiffyStuff.aspx,继承自SpiffyPage.
在页面加载时,SpiffyPage类应该将SpiffyControl注入到aspx页面中.
问题是SpiffyControl是一个用户控件,并且实例化后面的代码必须访问ASP命名空间,类似于:
ASP.controls_spiffycontrol_aspx MyControl;
Run Code Online (Sandbox Code Playgroud)
但是SpiffyPage不是aspx页面,它只是一个基页,因此我无法访问ASP命名空间,因此我无法实例化SpiffyControl以便注入它.
我怎样才能实现目标?
编辑:
一个重点是我必须引用实际的控件类型,以便我可以为某些自定义属性赋值.这就是为什么像LoadControl这样返回类型Control的函数在这种情况下不起作用.
Joh*_*ino 10
在SpiffyControl中添加一个基类,如:
public class SpiffyBase : UserControl
{
public void DoIt()
{
Response.Write("DoIt");
}
}
Run Code Online (Sandbox Code Playgroud)
然后你让你的SpiffyControl继承那个基类,比如:
public partial class SpiffyControl : SpiffyBase
Run Code Online (Sandbox Code Playgroud)
那么你应该能够从一个Basepage类做到这一点:
public class BasePage : Page
{
protected override void OnLoad(EventArgs e)
{
var c = Page.LoadControl("SpiffyControl.ascx") as SpiffyBase;
Page.Controls.Add(c);
c.DoIt();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9379 次 |
| 最近记录: |