好的,我有一個小窗體(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