ScriptManager_AsyncPostBackErrorMessageCS.aspx 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <%@ Page Language="C#" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <script runat="server">
  5. protected void ErrorProcessClick_Handler(object sender, EventArgs e)
  6. {
  7. // This handler demonstrates an error condition. In this example
  8. // the server error gets intercepted on the client and an alert is shown.
  9. throw new ArgumentException();
  10. }
  11. protected void SuccessProcessClick_Handler(object sender, EventArgs e)
  12. {
  13. // This handler demonstrates no server side exception.
  14. UpdatePanelMessage.Text = "The asynchronous postback completed successfully.";
  15. }
  16. protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
  17. {
  18. ScriptManager1.AsyncPostBackErrorMessage = e.Exception.Message;
  19. }
  20. </script>
  21. <html xmlns="http://www.w3.org/1999/xhtml">
  22. <head runat="server">
  23. <title>PageRequestManager endRequestEventArgs Example</title>
  24. <style type="text/css">
  25. body {
  26. font-family: Tahoma;
  27. }
  28. #AlertDiv{
  29. left: 40%; top: 40%;
  30. position: absolute; width: 200px;
  31. padding: 12px;
  32. border: #000000 1px solid;
  33. background-color: white;
  34. text-align: left;
  35. visibility: hidden;
  36. z-index: 99;
  37. }
  38. #AlertButtons{
  39. position: absolute;
  40. right: 5%;
  41. bottom: 5%;
  42. }
  43. </style>
  44. </head>
  45. <body id="bodytag">
  46. <form id="form1" runat="server">
  47. <div>
  48. <asp:ScriptManager ID="ScriptManager1" runat="server"
  49. OnAsyncPostBackError="ScriptManager1_AsyncPostBackError">
  50. </asp:ScriptManager>
  51. <script type="text/javascript" language="javascript">
  52. var divElem = 'AlertDiv';
  53. var messageElem = 'AlertMessage';
  54. var errorMessageAdditional = 'Please try again.';
  55. var bodyTag = 'bodytag';
  56. Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
  57. function ToggleAlertDiv(visString)
  58. {
  59. if (visString == 'hidden')
  60. {
  61. $get(bodyTag).style.backgroundColor = 'white';
  62. }
  63. else
  64. {
  65. $get(bodyTag).style.backgroundColor = 'gray';
  66. }
  67. var adiv = $get(divElem);
  68. adiv.style.visibility = visString;
  69. }
  70. function ClearErrorState() {
  71. $get(messageElem).innerHTML = '';
  72. ToggleAlertDiv('hidden');
  73. }
  74. function EndRequestHandler(sender, args)
  75. {
  76. if (args.get_error() != undefined && args.get_error().httpStatusCode == '500')
  77. {
  78. var errorMessage = args.get_error().message
  79. args.set_errorHandled(true);
  80. ToggleAlertDiv('visible');
  81. $get(messageElem).innerHTML = '"' +
  82. errorMessage + '" ' + errorMessageAdditional;
  83. }
  84. }
  85. </script>
  86. <asp:UpdatePanel runat="Server" UpdateMode="Conditional" ID="UpdatePanel1">
  87. <ContentTemplate>
  88. <asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
  89. <asp:Label ID="UpdatePanelMessage" runat="server" />
  90. <br />
  91. Last update:
  92. <%= DateTime.Now.ToString() %>
  93. .
  94. <br />
  95. <asp:Button runat="server" ID="Button1" Text="Submit Successful Async Postback"
  96. OnClick="SuccessProcessClick_Handler" OnClientClick="ClearErrorState()" />
  97. <asp:Button runat="server" ID="Button2" Text="Submit Async Postback With Error"
  98. OnClick="ErrorProcessClick_Handler" OnClientClick="ClearErrorState()" />
  99. <br />
  100. </asp:Panel>
  101. </ContentTemplate>
  102. </asp:UpdatePanel>
  103. <div id="AlertDiv">
  104. <div id="AlertMessage">
  105. </div>
  106. <br />
  107. <div id="AlertButtons" >
  108. <input id="OKButton" type="button" value="OK"
  109. runat="server" onclick="ClearErrorState()" />
  110. </div>
  111. </div>
  112. </form>
  113. </body>
  114. </html>