【发布时间】:2011-01-21 05:16:49
【问题描述】:
请原谅伪代码,但这是一个简单的问题:
我创建了一个用户控件 (myControlBase : UserControl),其标记中有一个文本框 (id = "txtbox")。在它的代码隐藏中,我编写了一个方法 SayHello(string s){ txtbox.Text = s; }。
我创建了另一个扩展 myControlBase (myControl : myControlBase) 的用户控件。在这个子控件的 page_load 中,我调用 SayHello("hello");并收到一个运行时错误,告诉我 txtbox 为空(显然尚未创建)。
那么,我可以从用户控件继承并让我的子控件访问基本控件的标记吗?我试图阅读这些控件的事件生命周期,但我想我没有得到它。
有什么想法吗?
-编辑-
对不起,它是 ASP.Net。如果这段代码更清楚了,那么我在描述问题方面一定做得很差。
txtBox 是一个 ASP:Textbox 控件,存在于 myControlBase 的标记中。
public partial class myControlBase : System.Web.UI.UserControl
{
protected void SayHello(string s){
txtBox.Text = s;
}
}
public partial class myControl: myControlBase
{
protected void Page_Load(object sender, EventArgs e)
{
SayHello("hello");
}
}
这会在 SayHello("hello");因为 txtBox 返回 Null。
【问题讨论】:
-
我假设你说的是 ASP.Net
-
您能发布您的代码吗?
-
哦。抱歉,ASP 不在我的权限范围内。
标签: c# asp.net user-controls page-lifecycle base-class