ICallbackEventHandler使用

本文介绍了一个ASP.NET中使用回调机制的具体实例。通过继承ICallbackEventHandler接口,实现了客户端与服务器端的数据交互。用户可以通过点击按钮选择不同的时间格式(12小时制或24小时制),从而获取相应格式的服务器时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后端:页面需继承ICallbackEventHandler

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

                string strRefrence = string.Empty;
                strRefrence = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveDataFromServer", "context"); // 这里ReceiveDataFromServer为客户端接收回调结果的JS方法,含一个传入参数

                string strCallBack = string.Empty;
                strCallBack = "function CallBackToTheServer(arg, context) {" + strRefrence + "};";

                Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallBackToTheServer", strCallBack, true);  // CallBackToTheServer,JS方法,发出回调请求

            }

        }
        #region ICallbackEventHandler Members

        private string strTimeFormat;

        public string GetCallbackResult()
        {
            if (strTimeFormat != "" && strTimeFormat == "12")
            {
                return DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss(12小时制)");
            }
            else
            {
                return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss(24小时制)");
            }
        }

        public void RaiseCallbackEvent(string eventArgument)
        {
            strTimeFormat = eventArgument;
        }

        #endregion

前端:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script>
        function ReceiveDataFromServer(valueReturnFromServer) {
            document.getElementById("ServerTime").innerHTML = valueReturnFromServer;
        }

        function GetServerTime(format) {
            CallBackToTheServer(format, "");
        }

    </script>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
       

        <div>
            <asp:Button ID="btnShow12" runat="server" Text="获取服务器时间(12小时制)" OnClientClick="javascript:GetServerTime(12);return false;" /><br />
            <asp:Button ID="btnShow24" runat="server" Text="获取服务器时间(24小时制)" OnClientClick="javascript:GetServerTime(24);return false;" /><br />
            <br />
            <span id="ServerTime"><%= DateTime.Now.ToString("yyyy-MM-dd HHHH:mm:ss") %></span>&nbsp;
        </div>
    </form>
</body>
</html>

 

转载于:https://www.cnblogs.com/shikyoh/p/3479900.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值