文章 | 入侵攻击 | 安全防御 | 操作系统 | 网站建设 | 网络编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程
论坛 | 黑客军火 | 配服务器 | 黑客情感 | 免费资源 | 美女贴图 | 灌水无罪 | 在线服务 | 会员照片 | 网站首页
 当前位置:主页 >> 技术文摘 >> 网络编程 >> NET编程 >> 文章内容  
 

 
Asp.net 中服务端控件事件是如何触发的

www.hx99.org 阅读: 时间:2007-07-12 整理:华西黑盟
------------------------------------------------------------------
  <HTML><HEAD><TITLE>Asp.net中服务端控件事件是如何触发的:::http://www.booro.com</TITLE>
<SCRIPTlanguage=JavaScript>

helpstat=false;
stprompt=true;
basic=false;
functionthelp(swtch){
if(swtch==1){
basic=false;
stprompt=false;
helpstat=true;
}elseif(swtch==0){
helpstat=false;
stprompt=false;
basic=true;
}elseif(swtch==2){
helpstat=false;
basic=false;
stprompt=true;
}
}

functionAddText(NewCode){
document.myform.txtcontent.value+=NewCode
}

functionemail(){
if(helpstat){
alert("Email标记\n插入Email超级链接\n用法1:[email]web@booro.com[/email]\n用法2: [email=web@booro.com特鸟飞勤[/email]");
}elseif(basic){
AddTxt="[email][/email]";
AddText(AddTxt);
}else{
txt2=prompt("链接显示的文字.\n如果为空,那么将只显示你的Email地址","");
if(txt2!=null){
txt=prompt("Email地址.","stskyweb@21cn.com");
if(txt!=null){
if(txt2==""){
AddTxt="[email]"+txt+"[/email]";
}else{
AddTxt="[email="+txt+"]"+txt2;
AddText(AddTxt);
AddTxt="[/email]";
}
AddText(AddTxt);
}
}
}
}
functionflash(){
if(helpstat){
alert("Flash动画\n插入Flash动画.\n用法:[flash]Flash文件的地址[/flash]");
}elseif(basic){
AddTxt="[flash][/flash]";
AddText(AddTxt);
}else{
txt=prompt("Flash文件的地址","http://");
if(txt!=null){
AddTxt="[flash]"+txt;
AddText(AddTxt);
AddTxt="[/flash]";
AddText(AddTxt);
}
}
}

functionshowsize(size){
if(helpstat){
alert("文字大小标记\n设置文字大小.\n可变范围1-6.\n1为最小6为最大.\n用法:[size="+size+"]这是"+size+"文字[/size]");
}elseif(basic){
AddTxt="[size="+size+"][/size]";
AddText(AddTxt);
}else{
txt=prompt("大小"+size,"文字");
if(txt!=null){
AddTxt="[size="+size+"]"+txt;
AddText(AddTxt);
AddTxt="[/size]";
AddText(AddTxt);
}
}
}

functionbold(){
if(helpstat){
alert("加粗标记\n使文本加粗.\n用法:[b]这是加粗的文字[/b]");
}elseif(basic){
AddTxt="[b][/b]";
AddText(AddTxt);
}else{
txt=prompt("文字将被变粗.","文字");
if(txt!=null){
AddTxt="[b]"+txt;
AddText(AddTxt);
AddTxt="[/b]";
AddText(AddTxt);
}
}
}

functionitalicize(){
if(helpstat){
alert("斜体标记\n使文本字体变为斜体.\n用法:[i]这是斜体字[/i]");
}elseif(basic){
AddTxt="[i][/i]";
AddText(AddTxt);
}else{
txt=prompt("文字将变斜体","文字");
if(txt!=null){
AddTxt="[i]"+txt;
AddText(AddTxt);
AddTxt="[/i]";
AddText(AddTxt);
}
}
}

functionquote(){
if(helpstat){
alert("引用标记\n引用一些文字.\n用法:[quote]引用内容[/quote]");
}elseif(basic){
AddTxt="[quote][/quote]";
AddText(AddTxt);
}else{
txt=prompt("被引用的文字","文字");
if(txt!=null){
AddTxt="[quote]"+txt;
AddText(AddTxt);
AddTxt="[/quote]";
AddText(AddTxt);
}
}
}

functionshowcolor(color){
if(helpstat){
alert("颜色标记\n设置文本颜色.任何颜色名都可以被使用.\n用法:[color="+color+"]颜色要改变为"+color+"的文字[/color]");
}elseif(basic){
AddTxt="[color="+color+"][/color]";
AddText(AddTxt);
}else{
txt=prompt("选择的颜色是:"+color,"文字");
if(txt!=null){
AddTxt="[color="+color+"]"+txt;
AddText(AddTxt);
AddTxt="[/color]";
AddText(AddTxt);
}
}
}

functioncenter(){
if(helpstat){
alert("对齐标记\n使用这个标记,可以使文本左对齐、居中、右对齐.\n用法:[align=center|left|right]要对齐的文本[/align]");
}elseif(basic){
AddTxt="[align=center|left|right][/align]";
AddText(AddTxt);
}else{
txt2=prompt("对齐样式\n输入'center'表示居中,'left'表示左对齐,'right'表示右对齐.","center");
while((txt2!="")&&(txt2!="center")&&(txt2!="left")&&(txt2!="right")&&(txt2!=null)) {
txt2=prompt("错误!\n类型只能输入'center'、'left'或者'right'.","");
}
txt=prompt("要对齐的文本","文本");
if(txt!=null){
AddTxt="\r[align="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/align]";
AddText(AddTxt);
}
}
}

functionhyperlink(){
if(helpstat){
alert("超级链接标记\n插入一个超级链接标记\n使用方法:[url]http://www.aspsky.net[/url]\nUSE: [url=http://www.aspsky.net]链接文字[/url]");
}elseif(basic){
AddTxt="[url][/url]";
AddText(AddTxt);
}else{
txt2=prompt("链接文本显示.\n如果不想使用,可以为空,将只显示超级链接地址.","");
if(txt2!=null){
txt=prompt("超级链接.","http://");
if(txt!=null){
if(txt2==""){
AddTxt="[url]"+txt;
AddText(AddTxt);
AddTxt="[/url]";
AddText(AddTxt);
}else{
AddTxt="[url="+txt+"]"+txt2;
AddText(AddTxt);
AddTxt="[/url]";
AddText(AddTxt);
}
}
}
}
}

functionimage(){
if(helpstat){
alert("图片标记\n插入图片\n用法:[img]http://www.aspsky.net/logo.gif[/img]");
}elseif(basic){
AddTxt="[img][/img]";
AddText(AddTxt);
}else{
txt=prompt("图片的URL","http://");
if(txt!=null){
AddTxt="\r[img]"+txt;
AddText(AddTxt);
AddTxt="[/img]";
AddText(AddTxt);
}
}
}

functionshowcode(){
if(helpstat){
alert("代码标记\n使用代码标记,可以使你的程序代码里面的html等标志不会被破坏.\n使用方法:\n[code]这里是代码文字[/code]");
}elseif(basic){
AddTxt="\r[code]\r[/code]";
AddText(AddTxt);
}else{
txt=prompt("输入代码","");
if(txt!=null){
AddTxt="\r[code]"+txt;
AddText(AddTxt);
AddTxt="[/code]";
AddText(AddTxt);
}
}
}

functionlist(){
if(helpstat){
alert("列表标记\n建造一个文字或则数字列表.\n\nUSE:[list][*]项目一[/*][*]项目二[/*][*]项目三[/*] [/list]");
}elseif(basic){
AddTxt="[list][*][/*][*][/*][*][/*][/list]";
AddText(AddTxt);
}else{
txt=prompt("列表类型\n输入'A'表示有序列表,'1'表示无序列表,留空表示无序列表.","");
while((txt!="")&&(txt!="A")&&(txt!="a")&&(txt!="1")&&(txt!=null)) {
txt=prompt("错误!\n类型只能输入'A'、'1'或者留空.","");
}
if(txt!=null){
if(txt==""){
AddTxt="[list]";
}else{
AddTxt="[list="+txt+"]";
}
txt="1";
while((txt!="")&&(txt!=null)){
txt=prompt("列表项\n空白表示结束列表","");
if(txt!=""){
AddTxt+="[*]"+txt+"[/*]";
}
}
AddTxt+="[/list]";
AddText(AddTxt);
}
}
}

functionshowfont(font){
if(helpstat){
alert("字体标记\n给文字设置字体.\n用法:[face="+font+"]改变文字字体为"+font+"[/face]");
}elseif(basic){
AddTxt="[face="+font+"][/face]";
AddText(AddTxt);
}else{
txt=prompt("要设置字体的文字"+font,"文字");
if(txt!=null){
AddTxt="[face="+font+"]"+txt;
AddText(AddTxt);
AddTxt="[/face]";
AddText(AddTxt);
}
}
}
functionunderline(){
if(helpstat){
alert("下划线标记\n给文字加下划线.\n用法:[u]要加下划线的文字[/u]");
}elseif(basic){
AddTxt="[u][/u]";
AddText(AddTxt);
}else{
txt=prompt("下划线文字.","文字");
if(txt!=null){
AddTxt="[u]"+txt;
AddText(AddTxt);
AddTxt="[/u]";
AddText(AddTxt);
}
}
}
functionsetfly(){
if(helpstat){
alert("飞翔标记\n使文字飞行.\n用法:[fly]文字为这样文字[/fly]");
}elseif(basic){
AddTxt="[fly][/fly]";
AddText(AddTxt);
}else{
txt=prompt("飞翔文字","文字");
if(txt!=null){
AddTxt="[fly]"+txt;
AddText(AddTxt);
AddTxt="[/fly]";
AddText(AddTxt);
}
}
}

functionmove(){
if(helpstat){
alert("移动标记\n使文字产生移动效果.\n用法:[move]要产生移动效果的文字[/move]");
}elseif(basic){
AddTxt="[move][/move]";
AddText(AddTxt);
}else{
txt=prompt("要产生移动效果的文字","文字");
if(txt!=null){
AddTxt="[move]"+txt;
AddText(AddTxt);
AddTxt="[/move]";
AddText(AddTxt);
}
}
}

functionshadow(){
if(helpstat){
alert("阴影标记\n使文字产生阴影效果.\n用法:[SHADOW=宽度,颜色,边界]要产生阴影效果的文字[/SHADOW]");
}elseif(basic){
AddTxt="[SHADOW=255,blue,1][/SHADOW]";
AddText(AddTxt);
}else{
txt2=prompt("文字的长度、颜色和边界大小","255,blue,1");
if(txt2!=null){
txt=prompt("要产生阴影效果的文字","文字");
if(txt!=null){
if(txt2==""){
AddTxt="[SHADOW=255,blue,1]"+txt;
AddText(AddTxt);
AddTxt="[/SHADOW]";
AddText(AddTxt);
}else{
AddTxt="[SHADOW="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/SHADOW]";
AddText(AddTxt);
}
}
}
}
}

functionglow(){
if(helpstat){
alert("光晕标记\n使文字产生光晕效果.\n用法:[GLOW=宽度,颜色,边界]要产生光晕效果的文字[/GLOW]");
}elseif(basic){
AddTxt="[glow=255,red,2][/glow]";
AddText(AddTxt);
}else{
txt2=prompt("文字的长度、颜色和边界大小","255,red,2");
if(txt2!=null){
txt=prompt("要产生光晕效果的文字.","文字");
if(txt!=null){
if(txt2==""){
AddTxt="[glow=255,red,2]"+txt;
AddText(AddTxt);
AddTxt="[/glow]";
AddText(AddTxt);
}else{
AddTxt="[glow="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/glow]";
AddText(AddTxt);
}
}
}
}
}
functionopenscriphtml()
{
if(navigator.appName!="MicrosoftInternetExplorer")
alert("此功能Netscape用户不能使用!")
else
{newwin=window.open('htmledit/editor.html','','width=544,height=294');
newwin.focus();
}
}
functionrunEx(){
//alert('请注意,按下确定将生成页面,按下后请稍后....');
varwinEx=window.open("","winEx","width=600,height=400,status=yes,menubar=yes,scrollbars=yes,resizable=yes"); winEx.document.open("text/html","replace");
winEx.document.write(unescape(event.srcElement.parentElement.children[2].value));
winEx.document.close();
}
functionopenScript(url,width,height){
varWin=window.open(url,"openScript",'width='+width+',height=' +height+',resizable=1,scrollbars=yes,menubar=yes,status=yes');
}
</SCRIPT>

<SCRIPTlanguage=Javascript>
<!--hide

functioninsertsmilie(smilieface){

document.frmAnnounce.body.value+=smilieface;
}
//-->
</SCRIPT>

<METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312"><LINK
href="Asp_net中服务端控件事件是如何触发的http--www_booro_com_files/style.css"rel=stylesheet>
<METAcontent="MSHTML6.00.3790.0"name=GENERATOR></HEAD>
<BODYonmouseover="self.status='DOTNET新网-DOTNET的技术荟萃本站';return true"
leftMargin=25topMargin=0>
<TABLE
style="BORDER-TOP-WIDTH:1px;BORDER-RIGHT:#2b55751pxsolid;BORDER-LEFT: #2b55751pxsolid;BORDER-BOTTOM:#2b55751pxsolid;BORDER-COLLAPSE: collapse"
height=25cellSpacing=1cellPadding=0width="100%"border=0>
<TBODY>
<TR>
<TDwidth="100%"bgColor=#f4f8fbheight=23>&nbsp;&nbsp;<IMG
src="Asp_net中服务端控件事件是如何触发的http--www_booro_com_files/slogo_geci.gif"
border=0>&nbsp;&nbsp;Asp.net中服务端控件事件是如何触发的&nbsp;</TD></TR></TBODY></TABLE>
<TABLE
style="BORDER-TOP-WIDTH:1px;BORDER-RIGHT:#2b55751pxsolid;BORDER-LEFT: #2b55751pxsolid;BORDER-BOTTOM:#2b55751pxsolid;BORDER-COLLAPSE:collapse"
height=52cellSpacing=1cellPadding=0width="100%"border=0>
<TBODY>
<TR>
<TDwidth="42%"
height=17>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<FONTcolor=#ff0000>你是第242位浏览该文章的人</FONT></TD>
<TDwidth="63%"height=17><IMG
src="Asp_net中服务端控件事件是如何触发的http--www_booro_com_files/04.gif"
border=0>chnking&nbsp;<IMG
src="Asp_net中服务端控件事件是如何触发的http--www_booro_com_files/05.gif"border=0>csdn
&nbsp;<IMGsrc="Asp_net中服务端控件事件是如何触发的http--www_booro_com_files/date.gif"
border=0>2003-8-28</TD></TR>
<TR>
<TDvAlign=topwidth="100%"colSpan=2height=35>
<DIValign=center>
<CENTER>
<TABLE
style="BORDER-TOP:#2b55751pxsolid;BORDER-LEFT-WIDTH:1px;BORDER-BOTTOM-WIDTH: 1px;BORDER-COLLAPSE:collapse;BORDER-RIGHT-WIDTH:1px"
cellSpacing=3cellPadding=0width="98%"border=0>
<TBODY>
<TR>
<TDwidth="100%">Asp.net中在客户端触发服务端事件分为两种情况:
<P></P>
<P>一.WebControls中的Button
和HtmlControls中的Type为submit的HtmlInputButton</P>
<P>这两种按钮最终到客户端的表现形式为:&lt;inputname="Submit1"id="Submit1"
type="submit"
value=”Submit”&gt;,这是Form表单的提交按钮,点击以后会作为参数发送到服务端,参数是这样的:
控件的name属性=控件的value值,对应上面的例子就是:Submit1=Submit。
服务端会根据接收到的控件的name属性的这个key来得知是这个按钮被点击了,从而在服务端触发这个按钮的点击事件。</P>
<P>二.HtmlControls中的Type为button的HtmlInputButton
和其它所有的控件事件,比如LinkButton点击,TextBox的Change事件等等:</P>
<P>这些事件在客户端产生后会经过一个统一的机制发送到服务端。</P>
<P>1.首先asp.net页框架会使用两个Hidden域来存放表示是哪个控件触发的事件,以及事件的参数:</P>
<P>&lt;!—表示触发事件的控件,一般是这个控件的name--&gt;</P>
<P>&lt;inputtype="hidden"name="__EVENTTARGET"value=""/&gt;</P>
<P>&lt;!—表示触发事件的参数,一般是当某个控件有两个以上的事件时,用来区别是哪个事件--&gt;</P>
<P>&lt;inputtype="hidden"name="__EVENTARGUMENT"value=""/&gt;</P>
<P>2.服务端会生成一个jscript的方法来处理所有这些事件的发送,这段代码是:</P>
<P>&lt;scriptlanguage="javascript"&gt;</P>
<P>&lt;!--</P>
<P>function__doPostBack(eventTarget,eventArgument){</P>
<P>vartheform=document.WebForm2;</P>
<P>theform.__EVENTTARGET.value=eventTarget;</P>
<P>theform.__EVENTARGUMENT.value=eventArgument;</P>
<P>theform.submit();</P>
<P>}</P>
<P>//--&gt;</P>
<P>&lt;/script&gt;</P>
<P>3.每个会引发服务端事件的控件都会在响应的客户端事件中调用上面的代码:</P>
<P>比如,HtmlControls中的Type为button的HtmlInputButton的点击事件</P>
<P>&lt;!—客户端的点击事件调用__doPostBack,eventTarget
参数为'Button2',表示是name为'Button2’控件触发的事件,eventArgument
为空,表示这个Type为button的HtmlInputButton只有一个客户端触发的服务端事件--&gt;</P>
<P>&lt;inputlanguage="javascript"
onclick="__doPostBack('Button2','')"name="Button2"id="Button2"
type="button"value="Button"/&gt;</P>
<P></P>
<P>又比如,TextBox控件的Change事件</P>
<P>&lt;!—客户端的onchange事件调用__doPostBack,eventTarget
参数为’TextBox1’,表示是name为’TextBox1’控件触发的事件,而TextBox控件只有一个客户端触发的服务端事件TextChanged,故服务器就会去触发这个TextBox的TextChanged事件-&gt;</P>
<P>&lt;inputname="TextBox1"type="text"id="TextBox1"
onchange="__doPostBack('TextBox1','')"language="javascript"
/&gt;</P>
<P>4.客户端触发事件后调用__doPostBack方法,将表示触发的控件源的eventTarget
和事件参数eventArgument分别付给两个隐藏域__EVENTTARGET和__EVENTARGUMENT,然后提交Form,在服务端根据__EVENTTARGET和__EVENTARGUMENT来判断是哪个控件的什么事件触发了。<BR></P></TD></TR></TBODY></TABLE></CENTER></DIV><BR><BR>&nbsp;
上篇文章:<A
href="http://www.booro.com/teach/list.asp?id=535">用ASP.NET开发Web服务的五则技巧</A>
<BR>&nbsp;下篇文章:<A
href="http://www.booro.com/teach/list.asp?id=537">从现存的应用来构建Web
Services</A></TD></TR></TBODY></TABLE>
<TABLE
style="BORDER-TOP-WIDTH:1px;BORDER-RIGHT:#2b55751pxsolid;BORDER-LEFT: #2b55751pxsolid;BORDER-BOTTOM:#2b55751pxsolid;BORDER-COLLAPSE:collapse"
height=19cellSpacing=0cellPadding=0width="100%"border=0>
<TBODY>
<TR>
<TDwidth="100%"bgColor=#f4f8fbheight=1>
<Palign=right>&nbsp;&nbsp;<A
href="http://www.booro.com/teach/list.asp?id=536#"><IMG
src="Asp_net中服务端控件事件是如何触发的http--www_booro_com_files/01.gif"
border=0></A>&nbsp;<A
href="http://www.booro.com/teach/printpage.asp?id=536"><IMG
src="Asp_net中服务端控件事件是如何触发的http--www_booro_com_files/02.gif"border=0></A>
<Ahref="javascript:self.close()"><IMG
src="Asp_net中服务端控件事件是如何触发的http--www_booro_com_files/03.gif"
border=0></A>&nbsp;</P></TD></TR></TBODY></TABLE></BODY></HTML>

   -------------------------------------------------------------------------------------------
  上一篇:DataGrid和CheckBox的混合使用
  下一篇:ASP.NET中水晶报表的使用
   -------------------------------------------------------------------------------------------
用户名:
Email:
评论内容:
 
  精品推荐
推荐:ASPX一句话木马--终
利用ASP.Net 动态生成HTML
asp.net实现验证码
在asp.net中利用session做
Asp.net 中在客户端触发服
Asp.net 中服务端控件事件
ASP.NET上传图片并生成可
ASP.NET AJAX解决网页打开
实现IE浏览器部分菜单命令
Asp.net一夜速成教程
从sqlserver中读取图片
ASP.NET页面间的传值的几
用动态属性和DataView实现
用PagedDataSource类实现D
关于TreeView控件专题
asp.net上传图片并同时生
ASP.NET中水晶报表的使用
ASP.NET 中 Cookie 的基本
ADO.NET使用经验集
Forms身份验证
ASP.NET四种页面导航方式
ASP.NET中如何防范SQL注入
[分享]ASP.NET学习手记```
ASP.NET编程中的十大技巧
用ASP.NET上传图片并生成
关于我们 | 发展历程 | 在线投稿 | 核心监督 | 友情链接 | 网站地图 | 网站留言 | 联系我们
Copyright © 2004-2007 Www.Hx99.Net
版本:华西黑盟网站系统V5.0 Email:root#hx99.org
中国·西安·宝鸡 请使用IE6.0版本, 分辩率1024×768进行浏览
版权所有 任意抄袭 注意完整
陕ICP备06000444号