请原谅伪代码,但这是一个简单的问题:
我创建了一个用户控件(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。