【发布时间】:2010-03-26 17:16:58
【问题描述】:
好的,我在 UpdatePanel 中有一个带有小表单(2 个字段)的灯箱,我想在按下“保存”按钮时关闭此灯箱(必须通过 javascript 完成)。
但是,页面上需要有一个服务器端 CustomValidator,我只想在它返回有效时关闭灯箱。
有人知道从服务器端验证器触发 javascript(或 jQuery)代码的方法吗?
【问题讨论】:
标签: c# asp.net javascript jquery
好的,我在 UpdatePanel 中有一个带有小表单(2 个字段)的灯箱,我想在按下“保存”按钮时关闭此灯箱(必须通过 javascript 完成)。
但是,页面上需要有一个服务器端 CustomValidator,我只想在它返回有效时关闭灯箱。
有人知道从服务器端验证器触发 javascript(或 jQuery)代码的方法吗?
【问题讨论】:
标签: c# asp.net javascript jquery
您可以使用ScriptManager 添加一点sn-p 代码,以便在响应返回到UpdatePanel 后执行。
if (Page.IsValid){
ScriptManager.RegisterStartupScript(
customValidator1,
typeof(MyPageClass),
"closeBox",
"myLightBoxVariableOnThePage.close()",
true);
}
【讨论】:
当服务器端验证器运行时,它会向浏览器发送一个全新的页面。之前在浏览器中显示的所有内容都被销毁,包括保存在您的 javascript 中的任何状态。如果新页面与旧页面非常相似,您应该认为这是一个快乐的巧合。
因此,这里要做的不是执行 javascript 函数,而是让您的 CustomValidator 在成功时对页面进行正确更改,以便首先正确地将其呈现给浏览器。
【讨论】: