ASP.NET中实现免刷新的方法

 

实现免刷新需要客户端的2Javascript方法和服务器端的2.NET方法配合使用

 

一、客户端的2jscript方法:

 

1,一个发送方法,负责向服务端发送数据,这里设置其为send(arg, content)arg即为要发送的数据,是一个字符串,content无用,设置为空字符串""。此方法无法直接写在页面里,需要在服务器端的Page_Load函数中用Page.ClientScript属性(一个ClientScriptManager类的实例)来辅助生成:

 

(1) 获得方法体:

string funcBody = Page.ClientScript.GetCallbackEventReference(Control control, string firstArgName, string receiveMethodName, string secondArgName)

control:一般用this

firstArgName:客户端发送方法的第一个参数的名字,此即为字符串"arg"

receiveMethodName:客户端的接收方法的名字,此即为"received"

secondArgName:客户端发送方法的第二个参数的名字,此即为"content"

 

(2) 生成方法:

string func = "function sendMethoName ( firstArgName,  secondArgName ){" + funcBody + "}";

sendMethoName客户端发送方法的名称,此应为"send"

firstArgName客户端发送方法的第一个参数的名称,此应为"arg"

secondArgName客户端发送方法的第二个参数的名称,此应为"content"

 

(3) 添加方法:

                    Page.ClientScript.RegisterClientScriptBlock(Type type, string key, string script)

                           type:防重复,一般用this.GetType()

                           key:同上,防重复的标记,随便

                           script:要添加的js代码块,这里用前面生成的func

 

2,一个接收方法(回调方法),负责响应服务端的回复,设其为received(val)val即为服务端返回的数据,是一个字符串。

此方法可以自己在页面里用<script></script>定义

 

二、服务端的2.NET方法:2方法来自于ICallbackEventHandler接口,因此需要页面类实现该接口。该接口的两个方法如下:

 

1public void RaiseCallbackEvent(string data)

当客户端向服务端发送了数据,本方法即被触发,参数data为客户端送来的数据,即客户端方法send(arg, content)中的arg

*在本方法以及下面那个方法中,不能向输出流写东西。要动态免刷新地更改页面的显示内容只能在客户端的reveived函数中进行。

 

2public string GetCallbackResult()

此方法的返回值将被发送给客户端,也就是客户端方法received(val)的参数val

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值