|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
既然话题已经抄起,我打算今晚发篇博文再引导一下舆论方向,使它再火两天,抛砖引玉,而且赵劼先生一直在跟帖,使.NET阵营的我感到万分难得。asp.net|创立 Action是ASP.NETAtlas中承继于Sys.Action基类的的一类组件,用来完成一类由某个事务激发的事务处置功效。Action与事务处置函数的功效相似,但它是一类泛化了的事务处置组件,用来形貌一些罕见的,通用的事务处置办法,比方挪用某个办法,设定某个工具的某个属性,激发一个PostBack等。
我们都晓得,今朝为止,Atlas最好的参考手册就是它的源代码。我们能够从源代码中找到以下三种Atlas的内建Action,他们都承继于Sys.Action基类:
Sys.InvokeMethodAction:用来挪用一个指定的函数。
Set.SetPropertyAction:用来设定某个工具的某个属性值。
Sys.WebForms.PostBackAction:用来激发一个PostBack。
在实践的项目中,仅仅利用以上三个内建的Action常常是不敷的,我们一般会必要本人界说一些在项目中经常使用的Action。侥幸的是,在Atlas完整的架构中,创立自界说的Action将长短常复杂的事变。上面让我们经由过程一个复杂的AlertAction示例来熟习自界说Action的办法。当某个指定的事务被激发时,AlertAction将显现给用户一个JavaScript提醒对话框,内含指定的笔墨。
一般的,创立自界说的Action有以下四个步骤:
承继于Sys.Action基类。
界说您的Action类的属性。在AlertAction的示例中,我们必要指定一个message属性用来保留将要显现给用户的内容。
完成performAction()办法,以实行您必要的自界说操纵。这个办法将被Action基类主动挪用。在我们的示例中,只是复杂的利用JavaScript中的内建alert()函数来弹出对话框,并显现message属性中的内容。
为您的自界说Action在getDescriptor()办法中增加相干的范例申明。
上面是AlertAction的JavaScript代码。上述四个步骤在代码内以正文的情势标出。将上面的代码保留为AlertAction.js。
Sys.AlertAction=function(){
Sys.AlertAction.initializeBase(this);
//step2
var_message;
this.get_message=function(){
return_message;
}
this.set_message=function(value){
_message=value;
}
//step4
this.getDescriptor=function(){
vartd=Sys.AlertAction.callBaseMethod(this,getDescriptor);
td.addProperty(message,String);
returntd;
}
//step3
this.performAction=function(){
alert(_message);
returnnull;
}
}
//step1
Sys.AlertAction.registerSealedClass(Sys.AlertAction,Sys.Action);
Sys.TypeDescriptor.addType(script,alertAction,Sys.AlertAction);
让我们在页面中测试一下这个AlertAction。这里必要在页面上增加的仅仅是一个Button,用来激发我们的AlertAction。上面是ASPX文件中的HTML界说。不要健忘在ScriptManager中增加对AlertAction.js文件的援用。
<atlas:ScriptManagerEnablePartialRendering="true"ID="ScriptManager1"runat="server">
<Scripts>
<atlas:ScriptReferencePath="AlertAction.js"/>
</Scripts>
</atlas:ScriptManager>
<div>
<inputid="myButton"type="button"value="ClickMe!"/>
</div>
上面是Atlas剧本界说,非常复杂,这里不再赘述。
<scripttype="text/xml-script">
<pagexmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<buttonid="myButton">
<click>
<alertActionmessage="ButtonClicked!"/>
</click>
</button>
</components>
</page>
</script>
扫瞄器中的运转了局:
上述示例程序能够在此下载:http://www.ckuyun.com/Files/dflying/AtlasActionDemo.zip捆绑编译器。用户不需要受制于厂家,自己就能将程序在新平台上编译运行。除了牛B轰轰的linux,估计也没有系统捆绑c/c++的编译器,而且许多新平台都无法支持复杂的c/c++编译器在上面直接运行。 |
|