Jar*_*red 14 javascript asp.net ajax
当提交Web表单时,我需要在流程中插入一些Javascript,但是在客户端验证发生之后.
RegisterOnSubmitStatement似乎在验证之前放置了javascript.
任何人都知道如何让它渲染后?
找到的解决方案:在Web控件中,我放了这样的东西:
protected override OnInit(EventArgs e) {
Page.SaveStateComplete += new EventHandler(RegisterSaveStuff);
base.OnInit(e);
}
void RegisterSaveStuff(object sender, EventArgs e) {
Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "name", "JS code here");
}
Run Code Online (Sandbox Code Playgroud)
小智 8
这是正确的,RegisterOnSubmitStatement在init函数中不起作用.它应该在页面lige循环之后调用.我认为正确的地方是:
"PreRenderComplete"
protected override OnInit(EventArgs e)
{
Page.PreRenderComplete+= new EventHandler(Page_PreRenderComplete);
base.OnInit(e);
}
void Page_PreRenderComplete(object sender, EventArgs e)
{
Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "name", "JS code here");
}
Run Code Online (Sandbox Code Playgroud)
在网上进行了一些研究并玩弄它之后,我发现你可以通过挂钩到Page的SaveStateComplete事件来做到这一点.我想验证提交语句是在PreRender事件期间注册的,所以如果你在之后注册它(在SaveStateComplete事件中),你可以在之后得到它.
你必须重新注册它,但这不是什么大问题,因为我不依赖于我的JS的ViewState.
| 归档时间: |
|
| 查看次数: |
4983 次 |
| 最近记录: |