仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 592|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计在ASP.NET Atlas中创立自界说Behavior

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)asp.net|创立  Atlas中的Behavior界说了当控件的某个事务被触发时的举动。Behavior能够看做是一种封装了的DHTML的事务,比方click和hover等。Behavior一样能够是一个组件,可被attach到某个Atlas客户端控件上,以供应这个Atlas客户端控件更初级,更丰厚的功效,比方一些庞大的拖放(drag&drop),主动完成,浮动等功效。Behavior将被界说在某个Atlas控件的behaviors汇合中。

  从Atlas文档和源文件中,我们能够晓得Atlas有以下一些内建的Behavior:

  ClickBehavior:供应对鼠标点击的处置。

  FloatingBehavior:供应拖放(drag&drop)的效果。

  HoverBehavior:供应对DHTML的事务onmou搜索引擎优化ver,onmou搜索引擎优化ut,onfocus和onblur的处置。

  Pop-upComponent:供应pop-up的功效,能够用来完成初级的tooltip。

  Auto-completeBehavior:供应主动完成的功效。这也是Atlas演示中经常使用的功效之一。这个Behavior还必要服务器真个处置程序。

  ClickBehavior用来处置DHTML的onclick事务,十分有效可是它供应的功效有些复杂。在一些对照庞大的程序中,我们大概必要将摆布键的功效分隔,比方,左键用来选择,右键用来弹出快速菜单。固然我们能够把这个if-else放在ClickBehavior的处置函数中,但这并非好的Atlas的办法。因而,明天我们来编写一个加倍壮大的ClickBehavior,叫做ExtendedClickBehavior,它能够在Behavior的外部就把摆布键分隔,而且激发出两个分歧的事务。经由过程编写这个ExtendedClickBehavior,您也能够懂得在Atlas中创立自界说的Behavior的一样平常历程。

  一般的,创立自界说的Behavior有以下5个步骤:

  承继于Sys.UI.Behavior基类。

  界说您本人的事务以封装DHTML中的事务。这些事务将被用来表露给其他的Atlas控件以取代原本的,未经润色的DHTML事务。

  在Behavior的机关函数中为您的事务指定处置函数,并在析构函数中detach事务的处置函数。

  在处置函数中收回响应的事务。在ExtendedClickBehavior的例子中,我们依据鼠标按键的分歧来收回分歧的事务。

  在getDescriptor()办法中加上对您界说的事务的形貌。

  上面是ExtendedClickBehavior的JavaScript代码。上述五个步骤在代码内以正文的情势标出。将上面的代码保留为ExtendedClickBehavior.js。

Sys.UI.ExtendedClickBehavior=function(){
 Sys.UI.ExtendedClickBehavior.initializeBase(this);

 var_clickHandler;

 //step2
 this.click=this.createEvent();
 this.leftClick=this.createEvent();
 this.rightClick=this.createEvent();

 this.dispose=function(){
  //step3
  this.control.element.detachEvent(onmousedown,_clickHandler);
  Sys.UI.ExtendedClickBehavior.callBaseMethod(this,dispose);
 }

 this.initialize=function(){
  Sys.UI.ExtendedClickBehavior.callBaseMethod(this,initialize);

  //step3
  _clickHandler=Function.createDelegate(this,clickHandler);
  this.control.element.attachEvent(onmousedown,_clickHandler);
 }

 this.getDescriptor=function(){
  vartd=Sys.UI.ExtendedClickBehavior.callBaseMethod(this,getDescriptor);

  //step5
  td.addEvent(click,true);
  td.addEvent(leftClick,true);
  td.addEvent(rightClick,true);
  returntd;
 }

 //step4
 functionclickHandler(){
  this.click.invoke(this,Sys.EventArgs.Empty);
  if(window.event.button==1)
  {
   this.leftClick.invoke(this,Sys.EventArgs.Empty);
  }
  elseif(window.event.button==2)
  {
   this.rightClick.invoke(this,Sys.EventArgs.Empty);
  }
 }
}
//step1
Sys.UI.ExtendedClickBehavior.registerSealedClass(Sys.UI.ExtendedClickBehavior,Sys.UI.Behavior);
Sys.TypeDescriptor.addType(script,extendedClickBehavior,Sys.UI.ExtendedClickBehavior);
  让我们在页面中测试一下这个ExtendedClickBehavior。在页面上增加一个<div>用来点击,一个label用来显现点击的信息。上面是ASPX文件中的HTML界说。不要健忘在ScriptManager中增加对ExtendedClickBehavior.js文件的援用。

<atlas:ScriptManagerEnablePartialRendering="true"ID="ScriptManager1"runat="server">
 <Scripts>
  <atlas:ScriptReferencePath="ExtendedClickBehavior.js"/>
 </Scripts>
</atlas:ScriptManager>
<div>
<divid="myButton"style="border:1pxsolidblack;width:20em;white-space:normal">ClickOnMe(LeftandRight)!</div><br/>
<spanid="myLabel">notclicked</span>
</div>
  上面是Atlas剧本界说。注重到我们利用了Atlas的setPropertyAction(有关AtlasAction,请见后续文章)用来在每次点击后设置label的text。

<pagexmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
 <labelid="myButton">
  <behaviors>
   <extendedClickBehavior>
   <click>
    <setPropertytarget="myLabel"property="text"value="clicked"/>
   </click>
   <leftClick>
    <setPropertytarget="myLabel"property="text"value="leftclicked"/>
   </leftClick>
   <rightClick>
    <setPropertytarget="myLabel"property="text"value="rightclicked"/>
   </rightClick>
   </extendedClickBehavior>
  </behaviors>
 </label>
 <labelid="myLabel"/>
</components>
</page>
  扫瞄器中的运转了局:
  没有点击:
 




  左键点击:





  右键点击:





  上述示例程序能够在此下载:http://www.ckuyun.com/Files/dflying/ExtendedClickBehaviorDemo.zip就安全性而言,Java已经远远低于VB.NET,更无法与安全性著称的C#相比。
莫相离 该用户已被删除
沙发
发表于 2015-1-19 18:57:21 | 只看该作者
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-26 13:18:35 | 只看该作者
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
飘灵儿 该用户已被删除
地板
发表于 2015-2-4 15:37:31 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-10 03:18:46 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
透明 该用户已被删除
6#
发表于 2015-2-28 18:22:51 | 只看该作者
ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。
爱飞 该用户已被删除
7#
发表于 2015-3-17 04:38:26 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
不帅 该用户已被删除
8#
发表于 2015-3-23 19:47:34 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 18:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表