ASP.NET2.0中控件的简单异步回调
2019-06-21 09:51:20来源: 阅读 ()
首先,在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();");;
然后在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,我理解的是在服务器端捕捉了客户端的请求之后,生成相应的客户端脚本,在服务器端回调的时候,客户端决定用什么函数处理回调和错误。;
服务器端实现接口的一个方法,也就是接收到客户端的请求之后,由服务器端先处理,然后再把结果和相应代码发回客户端。;
#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;最后,在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");;
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- WPF实现带全选复选框的列表控件 2020-03-29
- WPF实现简单的跑马灯效果 2020-03-23
- WPF实现ScrollViewer滚动到指定控件处 2020-03-19
- asp控件和html控件的概念区别 2020-03-09
- 根据控件Id得到控件并对该控件进行操作 2020-03-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash