一旦我使用的東西非常接近Displaying a Custom Error Message
部分Working with Partial-Page Rendering Events中描述的示例。如果你正在處理異步回發,它會很好地工作。唯一的缺點是它是爲異常處理而設計的,而不是用於成功/警告/等等。通知。
ScriptManager
上有一個屬性AsyncPostBackErrorMessage
,您可以使用它將任何文本消息傳遞迴客戶端。客戶端將在endRequest
事件處理程序檢索消息:
Server代碼:
// inside Page code:
var scriptManager = ScriptManager.GetCurrent(this /* assuming that this is a Page instance */);
scriptManager.AsyncPostBackErrorMessage = "Hello world";
客戶端代碼:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args) {
if (args.get_error() != undefined) {
var errorMessage = args.get_error().message;
args.set_errorHandled(true);
// Do whatever you need to display the message
}
}
另一種可能的解決辦法是添加客戶端函數調用使用ScriptManager.RegisterStartupScript
頁面。我可以想像,你可以有一個NotificationHandler
JavaScript對象這將有success
,warning
,error
等功能,您將在服務器端調用:
protected void Page_PreRender(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this, GetType(), "<Some unique key for script>", "NotificationHandler.success(\"Hello world\")", true);
}
嘗試清除在PreRender在結構,你以後使用這些值更新您的控件。 –