我已經複製並粘貼此警報級別: http://madskristensen.net/post/JavaScript-AlertShow%28e2809dmessagee2809d%29-from-ASPNET-code-behind.aspx爲什麼這個UpdatePanel不工作,但不在UpdatePanel中?
它的工作原理除了具有更新面板內的按鈕,但它沒有顯示錯誤。內部的asp代碼被執行,但沒有在客戶端顯示。
我已經複製並粘貼此警報級別: http://madskristensen.net/post/JavaScript-AlertShow%28e2809dmessagee2809d%29-from-ASPNET-code-behind.aspx爲什麼這個UpdatePanel不工作,但不在UpdatePanel中?
它的工作原理除了具有更新面板內的按鈕,但它沒有顯示錯誤。內部的asp代碼被執行,但沒有在客戶端顯示。
註冊Javascript與ScriptManager.RegisterClientScriptBlock
而不是page.ClientScript.RegisterClientScriptBlock
將負責在部分頁面更新期間註冊腳本。下面是修改後的代碼:
public static void Show(string message)
{
// Cleans the message to allow single quotation marks
string cleanMessage = message.Replace("'", "\\'");
string script = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>";
// Gets the executing web page
Page page = HttpContext.Current.CurrentHandler as Page;
if (page != null)
{
ScriptManager.RegisterClientScriptBlock(page, typeof(Alert), "alert", script, false);
}
}
我建議不要使用的UpdatePanel所有,實行編寫腳本的Web服務,並通過代理訪問它通過asp.net 它將噸神經節省您還有時間讓你親切產生,因爲UpdatePanel的是真的馬車
好主意,你有一個教程,謝謝。 – user310291 2010-03-29 08:41:50
這很容易,你可以看看http://www.asp.net/ajaxlibrary/HOW%20TO%20Call%20WCF%20Web%20Services.ashx – vittore 2010-03-29 23:41:21
感謝那麼後續的問題: http://stackoverflow.com/questions/2533995/how-to-reference-a-scriptmanager-from-httpcontext-current-currenthandler – user310291 2010-03-28 18:26:24
也知道爲什麼只是因爲它在更新面板中,這不起作用? – user310291 2010-03-28 18:26:53
你不需要在你的頁面上找到你的腳本管理器控件的實例,'RegisterClientScriptBlock'是'ScriptManager'類的一個靜態方法,所以上面的代碼可以像 – wsanville 2010-03-28 19:27:47