2010-03-26 42 views
0

好的,我有一个小窗体(2个字段)的灯箱,里面的UpdatePanel,我想关闭这个灯箱(必须通过JavaScript完成)当按下“保存”按钮时。服务器端验证完成后运行javascript函数

但是,需要在页面上有一个服务器端的CustomValidator,并且我只想关闭灯箱,如果这返回有效。

有没有人知道从服务器端验证器触发JavaScript(或jQuery)代码的方法?

回答

2

在响应回到UpdatePanel后,您可以使用ScriptManager添加一小段代码执行。

if (Page.IsValid){ 

    ScriptManager.RegisterStartupScript(
      customValidator1, 
      typeof(MyPageClass), 
      "closeBox", 
      "myLightBoxVariableOnThePage.close()", 
      true); 
} 
+0

嗯,有趣的想法。 – 2010-03-26 17:27:41

0

当该服务器端验证运行时,它会全新的一页发送到浏览器。在浏览器中显示的任何内容是销毁,包括保存在您的JavaScript中的任何状态。如果新页面与旧页面非常相似,则应该认为这是一个愉快的巧合。

因此,这里要做的事情不是执行JavaScript函数,而是让您的CustomValidator对页面进行正确的更改,使其成功正确地呈现给浏览器。

+0

不幸的是,灯箱根本就不能这样工作,它是一个jQuery的灯箱(建立在FaceBox之上),它不会在回发之后保持打开状态,而无需将其从updatepanel上下文中移除。这很复杂,因此我需要在有效的时候运行一些javascript代码,而不是仅仅让灯箱看不见的东西。 – 2010-03-26 17:30:18