一. 描述
在开发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了
在开发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了
发表评论
-
详解HTTP中GET和POST的区别
2015-01-08 08:41 625http://www.jellythink.com/archi ... -
后台查找页面上所有的TextBox控件
2013-01-03 14:26 1620呵呵~记下来 foreach (Cont ... -
ASP.NET页面Trace技巧
2012-07-24 17:57 887做过ASP.NET开发的人都知道Trace指令是一个非常有用的 ... -
对ViewState的解析
2012-05-23 15:52 1321最近做项目,使用GridView进行数据编辑,怎么也获取不到用 ... -
ASP.NET验证控件[转]
2012-05-09 17:07 1032一、前言 在 ... -
asp.net 实现多少秒后自动跳转到另一页面
2012-04-27 16:56 12351,在head里面加上 <meta http-eq ... -
什么是ViewState,在何处可以禁用ViewState
2012-04-24 22:20 1532【考点】 ViewState的理解。 【出现频率】 ★★★★☆ ... -
简述ASP.NET中客户端控件和服务端控件的区别
2012-04-24 22:14 2416题目:简述ASP.NET中客户 ... -
js清空FileUpload的值
2011-11-09 15:13 3909在平时项目开发中会有上传文件的功能,一般在前端会通过J ... -
用户自动义控件和Page页面的区别
2011-10-27 16:08 947主要的区别有五点: 一、用户自动义控件继承自System.We ... -
ASP.NET中的Server.MapPath()方法
2011-10-22 10:36 10481、Server.MapPath("/") ... -
验证码生成实例
2011-09-07 16:16 948作web总会要用到验证码!刚开始感觉这个东西挺难的,慢慢的感觉 ... -
ASP.NET缓存技术
2011-08-28 23:50 829用了缓存,其实就是由原来的:响应->执行->送显, ... -
ASP.NET中DataList控件模板属性说明及各功能实现效果介绍
2011-08-21 14:04 8003在用ASP.NET做网站开发过 ... -
Cookies和Session的区别
2011-08-19 22:52 1236为什么会有cookie呢,大家都知道,http是无状态的协议, ... -
ASP.NET中页面间传值方法总结
2011-08-18 13:38 984在ASP.NET网络编程中经常 ... -
ASP.NET六大对象
2011-08-18 12:49 515ASP.NET六大内置对象总结: 1.Response ...
相关推荐
非Ajax无刷之ClientScript_GetCallbackEventReference_楚天雪饮的空间
"Repeater无刷新分页示例"是一个实现此目标的技术方案,它利用了ICallbackEventHandler接口和GetCallbackEventReference方法来创建一个无需页面完全刷新即可切换分页的Repeater控件。这种技术大大提升了用户体验,...
个人感觉还是非常实用的。 控件介绍:仿google自动提示文本框,本控件也是通过ClientScript.GetCallbackEventReference实现ajax获取数据。控件继承了原来的TextBox控件,并在其基础上添加了触发事件用于获取匹配数据...
下面将详细讨论`RegisterClientScriptBlock`和`GetCallbackEventReference`这两个关键方法的使用。 `RegisterClientScriptBlock`是ASP.NET提供的一种方法,用于在HTML输出中插入自定义的JavaScript代码。这个方法在...
3. **处理GetCallbackEventReference**:在控件中重写GetCallbackEventReference方法,生成客户端的回调脚本。 4. **处理HandleCallback**:在控件中重写HandleCallback方法,处理实际的业务逻辑。 5. **注册控件**...
2. **客户端生成回调事件**:`fun_callbk`函数通过`ClientScript.GetCallbackEventReference`生成一个回调事件,并发送到服务器。 3. **服务器端处理**:服务器端接收到请求后,通过`RaiseCallbackEvent`方法处理...
DropDownList无刷新二级联动控件,通过ClientScript.GetCallbackEventReference实现了无刷新联动。支持样式,视图状态的保存。并将DropDownList的回发操作封装到事件中。使用控件就像使用一般的DropDownList服务器...
`ClientScript.GetCallbackEventReference`方法用于生成回调事件的引用,这个引用会调用服务器端的`RaiseCallbackEvent`方法,并在完成后调用客户端的`ReceiveServerData`函数来显示结果。 3. **客户端脚本处理** ...
在.NET框架下,AJAX的实现主要依赖于`GetCallbackEventReference`函数,它使得客户端脚本能够调用服务器端的特定函数,避免了页面的完全刷新。这一函数接受四个参数: 1. **control**:一个实现了`...
2. **注册回调事件**:在客户端,通过`Page.ClientScript.GetCallbackEventReference`方法获取回调事件的引用,然后将此引用嵌入到JavaScript函数中,以便在特定条件下触发回调。 3. **执行回调**:当满足某些条件...
2. Page.ClientScript.GetCallbackEventReference 方法:用于获取客户端函数的引用,供回调事件处理器使用。 3. Page.ClientScript.RegisterStartupScript 方法:用于注册客户端脚本,供回调事件处理器使用。 二、...
这种方式通过`ClientScript.GetCallbackEventReference`方法自动生成所需的JavaScript代码,使得局部刷新更为简单。 ```javascript function FillData() { var city = document.getElementById("TextBox1").value;...
JQuery的AutoComplete插件便是一个非常实用且易于集成的解决方案。本文将详细介绍如何使用JQuery AutoComplete插件实现自动提示功能。 首先,我们需要引入JQuery库以及AutoComplete插件的相关文件。在HTML页面的...
例如,在下面的代码中,当用户点击按钮时,会触发客户端的`callServer`函数,该函数通过`ClientScript.GetCallbackEventReference`方法向服务器发起异步请求,服务器处理请求后,再将结果通过`GetCallbackResult`...
string callbackReference = ClientScript.GetCallbackEventReference(this, "arg", "ReceiveCallback", "context", false); string callbackScript = string.Format("function CallServer(arg, context) {{ {0} }...
每次调用都会通过`ClientScript.GetCallbackEventReference`生成回调事件引用,并传入当前的索引(idx)作为参数。`GetMsgBack`函数是回调事件的回掉函数,它接收服务器返回的结果(进度值),并将对应的单元格背景...
在客户端,定义 JavaScript 函数并使用 `GetCallbackEventReference` 生成回调函数的引用: ```html function callServer(arg) { // ...调用服务器端方法 } (); return false;" /> ``` 在服务器端,...
`Page_Load`事件处理程序中,我们注册了回调函数`GetCallbackEventReference`和客户端脚本`ServerSum`,使得当客户端调用`ServerSum`时,服务器端的`RaiseCallbackEvent`会被触发。 ```csharp public partial class...
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 ...
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 ...