在aspx页面的Button click事件之前调用的用户控件page_load事件

时间:2009-10-22 11:40:03

标签: c#

我想在aspx页面中点击按钮时分配属性值,并希望将值传递给usercontrol,然后根据Property值绑定数据。 但问题是在触发按钮点击事件之前,用户控件的page_load是否被调用?是按钮点击再次调用用户控件的page_load的任何方法,还是有其他替代方法吗? 感谢

2 个答案:

答案 0 :(得分:2)

利用UserControl中的Page_Load使控件非常依赖于页面生命周期,因此不够灵活。更好的方法是向您从按钮OnClick事件调用的控件添加公共方法。然后该方法将执行数据绑定。

有点像这样:

//MyPage.aspx
void Button_OnClick(object sender, EventArgs e)
{
MyUserControl.DataBind(MyTextBox.Text);
}

//MyUserControl.ascx
public void DataBind(string value)
{
UpdateView(value);
}

答案 1 :(得分:1)

这很麻烦,但如果必须,您可以在按钮触发后手动调用Page_load事件。

更好的方法是:取决于在button_click事件之后需要触发的代码,您可以将其移动到另一个事件处理程序,如OnPreRender方法。