好的,我有一个小窗体(2个字段)的灯箱,里面的UpdatePanel,我想关闭这个灯箱(必须通过JavaScript完成)当按下“保存”按钮时。服务器端验证完成后运行javascript函数
但是,需要在页面上有一个服务器端的CustomValidator,并且我只想关闭灯箱,如果这返回有效。
有没有人知道从服务器端验证器触发JavaScript(或jQuery)代码的方法?
好的,我有一个小窗体(2个字段)的灯箱,里面的UpdatePanel,我想关闭这个灯箱(必须通过JavaScript完成)当按下“保存”按钮时。服务器端验证完成后运行javascript函数
但是,需要在页面上有一个服务器端的CustomValidator,并且我只想关闭灯箱,如果这返回有效。
有没有人知道从服务器端验证器触发JavaScript(或jQuery)代码的方法?
在响应回到UpdatePanel
后,您可以使用ScriptManager
添加一小段代码执行。
if (Page.IsValid){
ScriptManager.RegisterStartupScript(
customValidator1,
typeof(MyPageClass),
"closeBox",
"myLightBoxVariableOnThePage.close()",
true);
}
当该服务器端验证运行时,它会全新的一页发送到浏览器。在浏览器中显示的任何内容是销毁,包括保存在您的JavaScript中的任何状态。如果新页面与旧页面非常相似,则应该认为这是一个愉快的巧合。
因此,这里要做的事情不是执行JavaScript函数,而是让您的CustomValidator对页面进行正确的更改,使其成功正确地呈现给浏览器。
不幸的是,灯箱根本就不能这样工作,它是一个jQuery的灯箱(建立在FaceBox之上),它不会在回发之后保持打开状态,而无需将其从updatepanel上下文中移除。这很复杂,因此我需要在有效的时候运行一些javascript代码,而不是仅仅让灯箱看不见的东西。 – 2010-03-26 17:30:18
嗯,有趣的想法。 – 2010-03-26 17:27:41