下面用一个最简单的 anthem:Button 回调作为例子,理清回调过程中执行函数的次序。
代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>
<%@ Register TagPrefix="anthem" Assembly="Anthem" Namespace="Anthem" %>
<!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>
    <script type="text/javascript" language="javascript">
    function Anthem_PreCallBack(){
        alert(‘Anthem_PreCallBack‘);
        if (!confirm(‘callback?‘))
            return false;
    }
    
    function btn1_PreCallback(){
        alert(‘btn1_PreCallback‘);
        if (!confirm(‘callback?‘))
            return false;
    }
    
    function btn1_CallbackCacelled(){
        alert(‘btn1_CallbackCacelled‘);
    }
    
    function btn1_PostCallback(){
        alert(‘btn1_PostCallback‘);
    }
    
    function Anthem_CallBackCancelled(){
        alert(‘Anthem_CallBackCancelled‘);
    }
    
    function Anthem_Error(result){
        alert(result.error);
    }
    
    function Anthem_PostCallBack(){
        alert(‘Anthem_PostCallBack‘);
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <anthem:Button ID="btn1" runat="server" Text="按钮1" OnClick="btn1_OnClick"
            PreCallBackFunction="btn1_PreCallback"
            CallBackCancelledFunction="btn1_CallbackCacelled"
            PostCallBackFunction="btn1_PostCallback" />
    </div>
    </form>
</body>
</html>
后台代码:
protected void btn1_OnClick(object sender, EventArgs e)
{
    Anthem.Manager.AddScriptForClientSideEval("alert(‘script for eval‘)");
    throw new Exception("error message");
}
其流程图如下:
