`

GetCallbackEventReference实用讲解

 
阅读更多
一. 描述

在开发winform程序时不会考虑页面刷新问题,只要控制好线程别导致假死就ok了,但是在开发web页面程序时,刷新有的时候真是头痛的很。页面回调可以解决这个问题,下面简单就实用来讲对callback做下介绍。

二. 讲解

在网上看了很多关于原理呀什么的讲解,起初也是一头雾水,如果只是使用,不用了解那么多,那些原理在开发web网络功能时可以多了解一下,相关知识可以到网上搜一下,在这里我就简单说一下如何使用。

其实你只要走完5步就完成了,很简单:

1.设置触发事件(button 什么都行,这里用div),例如:

<div style="cursor:hand;background-color:#ededed;" onclick="fun_callbk('大家好')">click me</div>

2.编写两个客户端函数,例如:

...

function fun_callbk(msg)//这个函数就是你点击事件要触发的方法,其中就写一句话

{

<%=this.ClientScript.GetCallbackEventReference(this,"msg","showMsg",null)%>

//注意这里一定是双引号,单引号会出错(看着错误提示的,绝对叫你不知所以然):

//你要是觉得麻烦,那就直接写最终代码:

//WebForm_DoCallback('__Page',msg,showMsg,null,,null,false) ;//这个时候没有双引号哦,参数为6个



//Compiler Error Message: CS1012: Too many characters in character literal

//这句话简单讲就是在客户端注册一个引用,其中的参数你可以到网上搜一下,一般使用4个参数就够了

//第一个参数:指的是page类

//第二个参数:事件触发方法的参数

//第三个参数:接收服务端返回数据的函数,下面会定义

//第四个参数:一般设为null就可以了

}

function showMsg(rValue)//这个就是上面的第三个参数,接受服务端返回的值

{

alert(rValue);//简单点写,弄的那么复杂大家就看迷糊了

}

3.编写服务端程序

这一步比较简单了,你必须要做的三件事:

a.引用一个接口:ICallbackEventHandler,这是必须的,和前面的类或接口以,隔开(这是c#基础了)

b.声明第一个函数,用于接收客户端传来的值,如下:

//记住:函数名字不可以随便,必须是RaiseCallbackEvent才可以

//首先声明一个变量,方便讲解

string myStr=string.Empty;

public void RaiseCallbackEvent(string arg)

{

myStr=arg+"hello";//还是简单的写,将客户端传来的值赋给咱新声明的变量

//加一个hello,是为了验证数据的确是有服务端处理后返回的

}

c.声明另一个函数,用于将结果返回客户端

//这个函数的名字也必须是GetCallbackResult,不可以修改

public string GetCallbackResult()
    {
        return myStr;//将结果返回客户端
    }


好了,到这里你基本已经完成了!

三. 做一下总结

其实就用到4个方法,fun_callbk(),showMsg(),GetCallbackResult(),RaiseCallbackEvent()

需要添加一个引用:<%=this.ClientScript.GetCallbackEventReference(this,"arg,"showMsg",null)%>

需要继承一个接口:ICallbackEventHandler

就这些,你可以简单的这样理解:

fun_callbk()将客户端的值传给服务端的RaiseCallbackEvent();服务端处理完后通过GetCallbackResult()将值又返回客户端的showMsg(),就OK了
分享到:
评论

相关推荐

    非Ajax无刷之ClientScript_GetCallbackEventReference_楚天雪饮的空间

    非Ajax无刷之ClientScript_GetCallbackEventReference_楚天雪饮的空间

    Repeater无刷新分页示例

    "Repeater无刷新分页示例"是一个实现此目标的技术方案,它利用了ICallbackEventHandler接口和GetCallbackEventReference方法来创建一个无需页面完全刷新即可切换分页的Repeater控件。这种技术大大提升了用户体验,...

    仿google自动提示的文本框

    个人感觉还是非常实用的。 控件介绍:仿google自动提示文本框,本控件也是通过ClientScript.GetCallbackEventReference实现ajax获取数据。控件继承了原来的TextBox控件,并在其基础上添加了触发事件用于获取匹配数据...

    asp.net 客户端回调

    下面将详细讨论`RegisterClientScriptBlock`和`GetCallbackEventReference`这两个关键方法的使用。 `RegisterClientScriptBlock`是ASP.NET提供的一种方法,用于在HTML输出中插入自定义的JavaScript代码。这个方法在...

    ASP.NET基于ICallbackEventHandler的轻量级异步回调

    3. **处理GetCallbackEventReference**:在控件中重写GetCallbackEventReference方法,生成客户端的回调脚本。 4. **处理HandleCallback**:在控件中重写HandleCallback方法,处理实际的业务逻辑。 5. **注册控件**...

    C#回调简介

    2. **客户端生成回调事件**:`fun_callbk`函数通过`ClientScript.GetCallbackEventReference`生成一个回调事件,并发送到服务器。 3. **服务器端处理**:服务器端接收到请求后,通过`RaiseCallbackEvent`方法处理...

    DropDownList无刷新二级联动控件

    DropDownList无刷新二级联动控件,通过ClientScript.GetCallbackEventReference实现了无刷新联动。支持样式,视图状态的保存。并将DropDownList的回发操作封装到事件中。使用控件就像使用一般的DropDownList服务器...

    ASP.NET 2.0 正式版中无刷新页面的开发.

    `ClientScript.GetCallbackEventReference`方法用于生成回调事件的引用,这个引用会调用服务器端的`RaiseCallbackEvent`方法,并在完成后调用客户端的`ReceiveServerData`函数来显示结果。 3. **客户端脚本处理** ...

    ArcGIS Server .Net ADF开发

    在.NET框架下,AJAX的实现主要依赖于`GetCallbackEventReference`函数,它使得客户端脚本能够调用服务器端的特定函数,避免了页面的完全刷新。这一函数接受四个参数: 1. **control**:一个实现了`...

    asp.net 2.0使用ajax实现客户端回调功能详解

    2. **注册回调事件**:在客户端,通过`Page.ClientScript.GetCallbackEventReference`方法获取回调事件的引用,然后将此引用嵌入到JavaScript函数中,以便在特定条件下触发回调。 3. **执行回调**:当满足某些条件...

    【ASP.NET编程知识】Asp.net回调技术Callback学习笔记.docx

    2. Page.ClientScript.GetCallbackEventReference 方法:用于获取客户端函数的引用,供回调事件处理器使用。 3. Page.ClientScript.RegisterStartupScript 方法:用于注册客户端脚本,供回调事件处理器使用。 二、...

    asp.net中ajax局部刷新

    这种方式通过`ClientScript.GetCallbackEventReference`方法自动生成所需的JavaScript代码,使得局部刷新更为简单。 ```javascript function FillData() { var city = document.getElementById("TextBox1").value;...

    小试JQuery的AutoComplete插件

    JQuery的AutoComplete插件便是一个非常实用且易于集成的解决方案。本文将详细介绍如何使用JQuery AutoComplete插件实现自动提示功能。 首先,我们需要引入JQuery库以及AutoComplete插件的相关文件。在HTML页面的...

    C#和JavaScript相互调用

    例如,在下面的代码中,当用户点击按钮时,会触发客户端的`callServer`函数,该函数通过`ClientScript.GetCallbackEventReference`方法向服务器发起异步请求,服务器处理请求后,再将结果通过`GetCallbackResult`...

    asp.net异步调用后台方法提交

    string callbackReference = ClientScript.GetCallbackEventReference(this, "arg", "ReceiveCallback", "context", false); string callbackScript = string.Format("function CallServer(arg, context) {{ {0} }...

    利用Asp.Net回调机制实现进度条

    每次调用都会通过`ClientScript.GetCallbackEventReference`生成回调事件引用,并传入当前的索引(idx)作为参数。`GetMsgBack`函数是回调事件的回掉函数,它接收服务器返回的结果(进度值),并将对应的单元格背景...

    .net与javascript脚本的交互方法总结

    在客户端,定义 JavaScript 函数并使用 `GetCallbackEventReference` 生成回调函数的引用: ```html function callServer(arg) { // ...调用服务器端方法 } (); return false;" /&gt; ``` 在服务器端,...

    ASP.NET(AJAX+JSON)实现对象调用

    `Page_Load`事件处理程序中,我们注册了回调函数`GetCallbackEventReference`和客户端脚本`ServerSum`,使得当客户端调用`ServerSum`时,服务器端的`RaiseCallbackEvent`会被触发。 ```csharp public partial class...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part1

    8.2.8 getcallbackeventreference方法 307 8.2.9 getpostbackclienthyperlink方法 307 8.2.10 getpostbackeventreference方法 308 8.2.11 getwebresourceurl方法 308 8.2.12 registeronsubmitstatement方法 309 ...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part2

    8.2.8 getcallbackeventreference方法 307 8.2.9 getpostbackclienthyperlink方法 307 8.2.10 getpostbackeventreference方法 308 8.2.11 getwebresourceurl方法 308 8.2.12 registeronsubmitstatement方法 309 ...

Global site tag (gtag.js) - Google Analytics