AJAX.NET自定义异常的代码示例

5 篇文章 0 订阅
ASPX页面端代码:
<% @ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.cs" Inherits="AJAXException._Default"  %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head  runat ="server" >
    
< title > Untitled Page </ title >
    
< style  type ="text/css" >
 
      #UpdatePanel1 
      
{
       width
: 200px; height: 50px;
       border
: solid 1px gray;
      
}

 
      #AlertDiv
      
{
        left
: 40%; top: 40%;
        position
: absolute; width: 200px;
        padding
: 12px; 
        border
: #000000 1px solid;
        background-color
: white; 
        text-align
: left;
        visibility
: hidden;
        z-index
: 99;
      
}

 
      #AlertButtons
      
{
        position
: absolute; right: 5%; bottom: 5%;
      
}

    
</ style >
</ head >
< body  id ="bodytag" >
    
< form  id ="form1"  runat ="server" >
        
< asp:ScriptManager  ID ="ScriptManager1"  runat ="server"  OnAsyncPostBackError ="ScriptManager1_AsyncPostBackError"   />
        
<!-- AJAX相关的Javascript代码放置于此 -->
        
< script  type ="text/javascript"  language ="javascript" >
            
var divElem = 'AlertDiv';
            
var messageElem = 'AlertMessage';
            
var bodyTag = 'bodytag';
            
var calculate = "btnCalculate";
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
            
function ToggleAlertDiv(visString)
            
{
              
if (visString == 'hidden')
              
{
                  $get(bodyTag).style.backgroundColor 
= 'white'
                  $get(calculate).disabled 
= false;                        
              }

              
else
              
{
                  $get(bodyTag).style.backgroundColor 
= 'gray';
                  $get(calculate).disabled 
= true;                      
              }

              
var adiv = $get(divElem);
              adiv.style.visibility 
= visString;
            }

 
            
function ClearErrorState() 
            
{
              $get(messageElem).innerHTML 
= '';
              ToggleAlertDiv(
'hidden');                     
            }

 
            
function EndRequestHandler(sender, args)
            
{
                
if (args.get_error() != undefined)
                
{
                    
var errorMessage;
                    
if (args.get_response().get_statusCode() == '200')
                    
{
                        errorMessage 
= args.get_error().message;
                    }

                    
else
                    
{
                        
// Error occurred somewhere other than the server page.
                        errorMessage = 'An unspecified error occurred. ';
                    }

                    args.set_errorHandled(
true);
                    ToggleAlertDiv(
'visible');
                    $get(messageElem).innerHTML 
= errorMessage;
                }

            }

        
</ script >

        
< asp:UpdatePanel  ID ="UpdatePanel1"  runat ="server" >
            
< ContentTemplate >
                
< asp:TextBox  ID ="txtDivided"  runat ="server" ></ asp:TextBox > / < asp:TextBox  ID ="txtDivide"
                    runat
="server" ></ asp:TextBox > = < asp:Label  ID ="lblResult"  runat ="server" ></ asp:Label >
                
< asp:Button  ID ="btnCalculate"  runat ="server"  OnClick ="btnCalculate_Click"  Text ="Calculate"   />
            
</ ContentTemplate >
        
</ asp:UpdatePanel >
        
< div  id ="AlertDiv" >
            
< div  id ="AlertMessage" >
            
</ div >
            
< br  />
            
< div  id ="AlertButtons" >
                
< input  id ="OKButton"  type ="button"  value ="OK"  runat ="server"  onclick ="ClearErrorState()"   />
            
</ div >
        
</ div >
    
</ form >
</ body >
</ html >

 

后台C#代码:

 

using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

namespace  AJAXException
{
    
public partial class _Default : System.Web.UI.Page
    
{
        
protected void Page_Load(object sender, EventArgs e)
        
{

        }


        
protected void btnCalculate_Click(object sender, EventArgs e)
        
{
            
try
            
{
                
int a = Int32.Parse(txtDivided.Text);
                
int b = Int32.Parse(txtDivide.Text);
                
int res = a / b;
                lblResult.Text 
= res.ToString();
            }


            
catch (Exception ex)
            
{
                
if (txtDivided.Text.Length > 0 && txtDivide.Text.Length > 0)
                
{
                    ex.Data[
"ExtraInfo"= " You can't divide " +
                    txtDivided.Text 
+ " by " + txtDivide.Text + ".";

                }

                
throw ex;
            }


        }


        
protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
        
{
            
if (e.Exception.Data["ExtraInfo"!= null)
            
{
                ScriptManager1.AsyncPostBackErrorMessage 
=
                e.Exception.Message 
+
                e.Exception.Data[
"ExtraInfo"].ToString();

            }

            
else
            
{
                ScriptManager1.AsyncPostBackErrorMessage 
=
               
"An unspecified error occurred.";
            }


        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值