2010-03-26 43 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