在asp.net框架中如何调用AJAX,或者异步调用后台方法进行提交或更新。 近段时间,公司有个项目需要做成象新浪网的股票信息那样,实时进行刷新。经过摸索测试,下面把经验进行分享: 一、在页面的cs文件中,该类一定要实现: System.Web.UI.ICallbackEventHandler接口 即:继承System.Web.UI.Page类,并实现 System.Web.UI.ICallbackEventHandler接口 然后在Page_Load方法内(或DataBind())中进行注册:如下 //用于回调的
string callbackReference = ClientScript.GetCallbackEventReference(this, "arg", "ReceiveCallback", "context", false); string callbackScript = string.Format("function CallServer(arg,context){{ {0}}}", callbackReference); ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);
解释: string callbackReference = ClientScript.GetCallbackEventReference(this, "arg", "ReceiveCallback", "context", false); 该代码主要是注册一个回调事件,其中context为页面的div的ID值,主要是回调返回后需要重写页面的div的innerHtml(即控件)。 string callbackScript = string.Format("function CallServer(arg,context){{ {0}}}", callbackReference); 该代码主要是通过回调事件订制一个js方法,供页面调用(可能相当于委托)
二、重写ICallbackEventHandler接口的相应方法。
#region javascript异步调用,重写rptList public void RaiseCallbackEvent(string eventArgument)
三、页面表现时,需要定义一个div,里面任何内容都可以。 <div > <HeaderTemplate> <div>页面表现内容</div> </HeaderTemplate> <ItemTemplate> <div>页面表现内容</div> </ItemTemplate> <AlternatingItemTemplate> <div>页面表现内容</div> </AlternatingItemTemplate> </asp:Repeater> </div> 在js中增加如下js方法,以供后台调用。 function turnPage(pageIndex){ CallServer(pageIndex,'content'); } //5秒刷新下,即取数据库的值。重新绑定数据 setInterval(turnPage(1), 5000); function ReceiveCallback(arg,context){ var array = new Array(); array = arg.split('@'); //重新编译div的innerHTML var container = document.getElementById('context'); container.innerHTML = array[0]; }
结束运行。
|
请发表评论