ASP.NET异步回调是什么呢?让我们来看看具体的实例:
虽然已经有了ASP.NET AJAX了,最近学习ASP.NET控件的时候,逐步理解了原始的控件异步回调(代码取自《ASP.NET 2.0 高级编程》):
ASP.NET异步回调实例:
首先,在Render事件中添加好一个事件
- protected override void RenderContents(HtmlTextWriter output)
- {
- output.RenderBeginTag(HtmlTextWriterTag.Div);
- output.AddAttribute(HtmlTextWriterAttribute.Type,
- "text");
- output.AddAttribute(HtmlTextWriterAttribute.Id,
- this.ClientID);
- output.AddAttribute(HtmlTextWriterAttribute.Name,
- this.ClientID);
- output.AddAttribute(HtmlTextWriterAttribute.Value,
- this.Text);
- output.AddAttribute("OnBlur", "ClientCallback();");
- this.AddAttributesToRender(output);
- output.RenderBeginTag(HtmlTextWriterTag.Input);
- output.RenderEndTag();
- output.RenderEndTag();
- }
这里最重要的就是output.AddAttribute("OnBlur","ClientCallback();");
ASP.NET异步回调实例之在OnPreRender事件中,添加如下代码:
- protected override void OnPreRe
- nder(EventArgs e)
- {
- //Page.ClientScript.RegisterClientScriptInclude("UtilityFunctions", "JScript.js");
- Page.ClientScript.RegisterStartupScript(typeof(Page), "ControlFocus",
- "document.getElementById('" + this.ClientID + "').focus();", true);
- Page.ClientScript.RegisterStartupScript(typeof(Page),
- "ClientCallback","function ClientCallback() {"+"args=document.getElementById('"+this.ClientID+"').value;
- "+Page.ClientScript.GetCallbackEventReference(this,
- "args","CallbackHandler",null,"ErrorHandler",true)+"}");
- //向服务器发送请求,由服务器端生成回调的客户端脚本。
- }
也就是在服务器端生成客户端代码,注意***一个方法GetCallbackEventReference,我理解的是在服务器端捕捉了客户端的请求之后,生成相应的客户端脚本,在服务器端回调的时候,客户端决定用什么函数处理回调和错误。
ASP.NET异步回调实例之服务器端实现接口的一个方法,也就是接收到客户端的请求之后,由服务器端先处理,然后再把结果和相应代码发回客户端。
- #region ICallbackEventHandler Members
- public string RaiseCallbackEvent(string eventArgument)
- {
- int result;
- if (!Int32.TryParse(eventArgument, out result))
- throw new Exception("The method is not implemented.");
- return "Valid Data";
- }
- #endregion
ASP.NET异步回调实例之在jscript.js文件中写好相应的回调处理函数即可:
- var args;
- var ctx;
- function ValidateText(ctl)
- {
- if(ctl.value=='')
- {
- alert("Please enter a value");
- ctl.focus();
- }
- }
- function CallbackHandler(args,ctx)
- {
- alert("The data is valid");
- }
- function ErrorHandler(args,ctx)
- {
- alert("The data is not a number");
- }
ASP.NET异步回调的基本情况就向你介绍到这里,希望对你了解和学习ASP.NET异步回调有所帮助。
【编辑推荐】