从Page Page_Load事件调用用户控制功能

时间:2013-07-09 13:48:05

标签: asp.net user-controls code-behind pageload findcontrol

我有UserControl作为FormView的模板,但是根据它是处于编辑模式还是插入模式,需要禁用其中一个TextBox控件。我在UserControl

中添加了一个函数
public bool IsInsert
{
    get { return txtUser.Enabled; }
    set { txtUser.Enabled = value; }
}

但我无法在父母UserControl事件中获得Page_Load的引用。我在aspx代码中定义了控件(不是代码隐藏)。我尝试使用FindControl,但收到错误Object reference not set to an instance of an object。这是因为UserControl在页面后加载了吗?是否有其他方法可以有条件地禁用TextBox

1 个答案:

答案 0 :(得分:1)

这不是一个好习惯 - User Control应该单独决定这种东西......

但如果需要这样做:

public void Page_Load(object sender, EventArgs e)
{
    InitYouUserControl();
}

更新

您必须等到load event的{​​{1}}被解雇。

要访问User Control的某些部分,您应该在其中定义一个属性。