2013-07-09 30 views
1

我有一个UserControl作为FormView的模板,但取决于它处于编辑模式还是插入模式,需要禁用其中一个TextBox控件。我添加了一个功能到UserControl从页面的Page_Load事件调用UserControl函数

public bool IsInsert 
{ 
    get { return txtUser.Enabled; } 
    set { txtUser.Enabled = value; } 
} 

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

回答

1

它不是好的做法 - User Control应该决定这种单独的东西...

但是,如果它需要做的是这样的:

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

更新:

你必须等到您的User Controlload event被解雇。

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

+0

如果不是很好的做法,我会不喜欢使用它...有没有比使用'User Control'或单独编写每个'FormView'模板更好的解决方案? – Jenius

+0

@Pyitoechito - 更新了我的答案。如果它有帮助 - upvote它)如果这是你的问题的解决方案 - 也接受它 – MikroDel

+0

@Pyitoechito - 你知道如何定义财产? – MikroDel

相关问题