C#回调简介
单页ajax 回调技术;在开发winform程序时不会考虑页面刷新问题,只要控制好线程别导致假死就ok了,但是在开发web页面程序时,刷新有的时候真是头痛的很。页面回调可以解决这个问题,下面简单就实用来讲对callback做下介绍。 ### C#中的回调机制简介 #### 一、回调的基本概念 在探讨C#中的回调机制之前,我们首先需要了解回调的基本概念。回调是一种常见的编程模式,它允许在某个事件发生或者某个条件满足时,调用预先注册的函数或方法。在C#中,回调通常用于异步操作和事件处理中,尤其是在Web开发中非常常见。 #### 二、C#中的回调应用实例 在开发WinForm应用程序时,由于其基于事件驱动模型的特点,并不需要过多考虑页面刷新的问题,主要关注的是如何避免因长时间运行的线程而导致的界面卡顿现象。而在Web开发中,尤其是当涉及到Ajax请求时,页面刷新和数据更新的同步问题则显得尤为重要。此时,回调技术就成为了解决这类问题的关键。 #### 三、C# Web开发中的回调实现 在C# Web开发中,我们可以利用ASP.NET的回调机制来处理异步请求。以下是一个简单的示例: ```html <div style="cursor: hand; background-color: #ededed;" onclick="fun_callbk('Hello World')">Click me</div> ``` 这里定义了一个HTML元素,当用户点击时将触发`fun_callbk`函数。 ```javascript function fun_callbk(msg) { // 这里使用了ASP.NET提供的ClientScript对象来生成一个回调事件引用 <%=this.ClientScript.GetCallbackEventReference(this, "msg", "showMsg", null)%> } function showMsg(rValue) { alert(rValue); } ``` 在这个JavaScript函数中,我们使用了`ClientScript.GetCallbackEventReference`方法来创建一个回调事件引用。该方法的参数分别代表: - `this`:当前页面对象。 - `"msg"`:传递给服务器端的参数名。 - `"showMsg"`:回调成功后执行的客户端函数名。 - `null`:额外的数据,此处为空。 接下来,在C#代码中,我们需要实现`ICallbackEventHandler`接口来处理客户端的回调请求: ```csharp public partial class YourPage : System.Web.UI.Page, ICallbackEventHandler { public string myStr = string.Empty; public void RaiseCallbackEvent(string arg) { myStr = arg + " hello"; } public string GetCallbackResult() { return myStr; } } ``` 这里定义了一个名为`YourPage`的页面类,它实现了`ICallbackEventHandler`接口。其中,`RaiseCallbackEvent`方法接收客户端传递的参数并进行处理,而`GetCallbackResult`方法返回处理后的结果。 #### 四、回调机制的工作流程 1. **客户端触发回调**:用户点击按钮,触发`fun_callbk`函数。 2. **客户端生成回调事件**:`fun_callbk`函数通过`ClientScript.GetCallbackEventReference`生成一个回调事件,并发送到服务器。 3. **服务器端处理**:服务器端接收到请求后,通过`RaiseCallbackEvent`方法处理传入的参数,并通过`GetCallbackResult`方法返回处理结果。 4. **客户端接收结果**:客户端收到服务器返回的结果后,调用`showMsg`函数显示结果。 #### 五、总结 通过以上示例,我们可以看到在C# Web开发中,回调机制提供了一种有效的方式来处理异步请求和数据更新。它不仅简化了Web页面的交互逻辑,还提高了用户体验。对于开发者来说,理解并掌握回调机制是非常重要的,特别是在复杂的Web应用开发中。
在开发winform程序时不会考虑页面刷新问题,只要控制好线程别导致假死就ok了,但是在开发web页面程序时,刷新有的时候真是头痛的很。页面回调可以解决这个问题,下面简单就实用来讲对callback做下介绍。
二. 讲解
在网上看了很多关于原理呀什么的讲解,起初也是一头雾水,如果只是使用,不用了解那么多,那些原理在开发web网络功能时可以多了解一下,相关知识可以到网上搜一下,在这里我就简单说一下如何使用。
其实你只要走完5步就完成了,很简单:
1.设置触发事件,例如:
<div style="cursor:hand;background-color:#ededed;" onclick="fun_callbk('大家好我是wdy)">click me</div>
2.编写两个客户端函数,例如:
...
function fun_callbk(msg)//这个函数就是你点击事件要触发的方法,其中就写一句话
{
<%=this.ClientScript.GetCallbackEventReference(this,"msg","showMsg",null)%>
//这句话简单讲就是在客户端注册一个引用,其中的参数你可以到网上搜一下,一般使用4个参数就够了
//第一个参数:指的是page类
//第二个参数:事件触发方法的参数
- tab9632012-08-30不错,可我基础太差。还是有点迷糊,等水平好了点,在好好看看
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助