mikebai.com

  • Home
  • dev
  • DotNET
  • M365
  • 搞笑
  • 杂七杂八
  • FocusDict
個人BLOG
it developer
  1. Main page
  2. DotNET
  3. Main content

callback笔记

2009-11-04 91hotness 0likes 0comments

public string GetCallbackEventReference (
 Control control, 处理客户端回调的服务器 Control。该控件必须实现 ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。
 string argument, 从客户端脚本传递给服务器端的一个参数、RaiseCallbackEvent 方法。
 string clientCallback, 一个客户端事件处理程序的名称,该处理程序接收成功的服务器端事件的结果。即服务器端GetCallbackResult方法返回给客户端JS所在的方法。用户定义在<script>块中的JavaScript回调(callback)函数名。回调(callback)执行后,此函数最终负责页面的更新。
 string context 上下文对象,客户端回调的客户端函数(即该方法的返回值函数)返回给clientCallback的一个参数.
 string clientErrorCallback,客户端事件处理程序的名称,该处理程序在服务器端事件处理程序出现错误时接收结果。
 bool useAsync true 表示同步执行回调;false 表示异步执行回调。


)


返回值
调用客户端回调的客户端函数的名称。



GetCallbackEventReference函数将产生如下的脚本调用:
WebForm_DoCallback(pageID, input, UpdateEmployeeViewHandler, null, null);



客户端JS需要2个函数
一是出发改回调的激发函数,即GetCallbackEventReference的返回值
二是处理服务器端所返回的结果数据,并对当前client页面进行更新的函数.即上述函数参数中的clientCallback



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="SRS.Web.WebForm1" %>
<!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></title>


    <script type="text/javascript">
        function DoCallBack(arg, evt, context) {
            WebForm_DoCallback("__Page", arg, evt, context, null, false);
        }


        function btnCallback(arg, context) {
            DoCallBack(arg, this.callbackEvent, context);
        }


        function callbackEvent(arg, context) {
            alert(arg + context);
        }
    </script>


</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="button" value="Callback" onclick="btnCallback(1, 'Message')" />
    </div>
    </form>
</body>
</html>



    public partial class WebForm1 : System.Web.UI.Page, ICallbackEventHandler
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.ClientScript.GetCallbackEventReference(this, "", "", "");
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Write("");
        }
        void ICallbackEventHandler.RaiseCallbackEvent(String eventArgument)
        {
            eventArgument = "i have changed~";
        }
        string ICallbackEventHandler.GetCallbackResult()
        {
            return "Data from server...";
        }
    }


 


例子2


<%@ Page Language="C#" AutoEventWir

Tag: Nothing
Last updated:2009-11-04

mikebai

This person is a lazy dog and has left nothing

Like
< Last article
Next article >

COPYRIGHT © 2025 mikebai.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang