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