2009-09-28 90 views
0

我想在用戶單擊按鈕時關閉ShadowBox彈出框。彈出窗口在Iframe中顯示單獨的頁面。 這適用於取消按鈕控件上的客戶端事件,例如,ASP.Net&jQuery - 關閉彈出框

OnClientClick="javascript:parent.Shadowbox.close();" 

然而,確定按鈕有一個服務器端事件,因爲數據需要保存。當我從上面定義OnClick和OnClientClick處理程序時,IFrame將關閉,並且服務器端事件處理程序不會觸發。

我試圖從標記刪除的OnClientClick事件處理程序,並使用ClientScriptManager做到這一點,因爲在

Page.ClientScript.RegisterStartupScript(this.GetType(), 
    "Close", "parent.Shadowbox.close();", true); 

顯然是因爲這些按鈕是一個UpdatePanel,劇本沒有得到登記,它不會出現在Reponse流中。 IPanel保持打開狀態。

我該怎麼做?

+0

你是怎麼解決這個問題的?你可以通過代碼嗎? – helpme 2012-11-09 21:39:43

回答

1

當您使用MS AJAX控件時,您需要使用ScriptManager而不是ClientScript註冊腳本。

+0

您的意思是這樣的: ScriptManager.RegisterStartupScript(this,this.GetType(), 「CloseScript」,「window.close();」,true); 沒有區別。 – cdonner 2009-09-28 15:54:20

+0

嗯。我現在很感興趣,爲什麼你的原始設置阻止了回發。 OnClientClick不應該阻止回發,如果你的JavaScript沒有返回false .... – womp 2009-09-28 16:20:16

+0

我寫了一個新的方法,顯式返回true,仍然沒有回傳。 – cdonner 2009-09-28 17:02:02