ASCX 基础事件可能会在您的 ASPX 基础事件之后触发,但在整个生命周期中,您可以触发自己的事件。
你可以在你的 ASCX 上定义一个事件,让你的页面注册到这个事件,然后将你的自定义事件从你的 ASCX 传播到你的 ASPX,参数中包含你需要的任何数据
粗略的例子(可能无法编译):在 ASCX
public partial YourControl : System.Web.UI.UserControl {
public event EventHandler MyControlDataBound;
public void FireMyControlDataBound()
{
if (MyControlDataBound!= null)
{
MyControlDataBound(this, new EventArgs());
}
}
protected void MyDataBound(object sender, EventArgs e) {
// ......
FireMyControlDataBound();
}
}
在 ASPX 中
public partial class MyPage: Page
{
protected void Page_Load(object sender, EventArgs e)
{
yourUserControlInstance.MyControlDataBound += HandleYourDataInYourPage;
}
protected void HandleYourDataInYourPage(object sender, EventArgs e) {
// .. do whatever needed in your page, with your data
// if you have defined a custom Args class that inherits EventArgs, your could collect data here...
}
}
如果您需要,请随意创建一个继承 EventArgs 的类以将数据与您的事件一起传递