我正在构建一个ASP.NET自定义服务器控件。 我已经实现了IPostBackDataHandler和IPostBackEventHandler。 OnPreRender我已经注册了回发逻辑:
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (Page != null)
{
Page.RegisterRequiresRaiseEvent(this);
Page.RegisterRequiresPostBack(this);
}
}
控件使用ImageButton(但我也试过一个简单的Button);单击它时,我可以看到页面“刷新”,并发布了一些数据(我检查过)。 但是,我不知道为什么RaisePostBackEvent(字符串eventArguments)没有触发。
有谁知道发生了什么事?有人能指出我正确的方向来解决这个问题吗?
提前致谢,
干杯, 詹卢卡。
答案 0 :(得分:0)
在PreRender
阶段注册您的控件为时已晚。您可以在Load
阶段执行此操作:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (Page != null && Page.IsPostBack)
{
Page.RegisterRequiresRaiseEvent(this);
Page.RegisterRequiresPostBack(this);
}
}