Hello World
Spiga

从Atlas到Microsoft ASP.NET AJAX(9) - Using the Value-add Scripts

2006-10-23 02:48 by 老赵, 4760 visits
Using the Value-add Scripts

在CTP版本中,您只需简单地将一个ScriptManager控件加到页面中,默认的CTP核心功能(Atlas.js)就被添加了。不过其它一些脚本是可选的,例如AtlasUIGlitz.js文件。如果您要使用它们,则需要手动地将其加入ScriptManager的references中,或者将他们定义在XML-Script的<refereces />里。

在RTM版本中,为了使用Value-add里的功能,您必须在ScriptManager中添加特定的脚本引用。下面的例子展示了如何引用Value-add中定义的所有脚本。

注意:在这里,注册的顺序非常重要,它表明了一个“dependency chain”。

<asp:ScriptManager runat=”server” id=”ScriptManager1”>
    
<Scripts>
       
<asp:ScriptReference Assembly="Microsoft.Web.Preview"
            Name
="Microsoft.Web.Resources.ScriptLibrary.PreviewScript.js"/>
       
<asp:ScriptReference Assembly="Microsoft.Web.Preview" 
            Name
="Microsoft.Web.Resources.ScriptLibrary.PreviewGlitz.js"/>
        
<asp:ScriptReference Assembly="Microsoft.Web.Preview" 
            Name
="Microsoft.Web.Resources.ScriptLibrary.PreviewDragDrop.js"/>
    
</Scripts>
</ScriptManager>


Client-based and Server-based Types

定义在Value-add脚本中的类型从CTP版本中的Sys.*命名空间转移到了Sys.Preview.*中。这确保了功能上的明显区别。从CTP转移到Value-add脚本的开发人员需要更新他们的JavaScript代码。例如,Sys.Services.Components.Profile组件现在已经变成了Sys.Preview.Services.Components.Profile

相似地,使用CTP版本中服务器控件的开发人员在转移到Value-add时,则必须更新Web.config文件,以使用新的命名空间:Microsoft.Web.Preview.*。例如,Microsoft.Web.UI.Controls.DragOverlayExtender现在已经变成了Microsoft.Web.Preview.UI.Controls.DragOverlayExtender


XML-Script

在Value-add包内依旧能够使用XML-Script,但是由于RTM版本的影响,必须作一些改变。另外,XML-Script的功能也得到了增强。

注意:XML-Script标签不是大小写敏感的。然而,一些特定的属性和它们的值是大小写相关的,因此可能需要对您的应用程序做一些修改。

  XML-Script的标签名直接使用了类型名称,在CTP版本中内置的下列标签在Value-add包中被改变了:
<opacity />
<layout />
<autoComplete />
<setProperty />
<invokeMethod />
<serviceMethod />
<postback />
<select />

在Value-add包中,上述标签名变成了:
<opacityBehavior />
<layoutBehavior />
<autoCompleteBehavior />
<setPropertyAction />
<invokeMethodAction />
<serviceMethodRequest />
<postbackAction />
<selector />


Defining Tag Prefixes

XML标签依旧使用内置的脚本前缀。另外,对自定义前缀的支持被增强了,它使用了如下的语法。这允许开发人员使用逗号来分隔命名空间的标记。
<script type="text/xml-script">
    
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005"
        xmlns="JavaScript: Sys.UI, Sys"
>
        
<components>
            ...
        
</components>
    
</page>
</script>

Comment  事实上,在原文中出现的是“xmlns:"JavaScirpt: Sys.UI, Sys"”而不是“xmlns="JavaScript: Sys.UI, Sys"”,我在阅读代码之后作了纠正。


Creating Declarative Bindings

CTP版本中的Binding被转移到了Value-add脚本中,并且它能够支持在各种级别中使用,而无须嵌套在某个特定的控件中。当它被嵌套在某个控件中时,binding会从它父控件得到上下文或者数据源。下面的代码能够同时在CTP和Value-add中正确使用binding:
<script type="text/xml-script">
    
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
        
<components>
            
<textbox id="Name" />
            
<label id="FirstName">
                
<bindings>
                    
<binding dataContext="Name" dataPath="text" 
                        property
="text"/>  
                
</bindings>
            
</label>
        
</components>
    
</page>
</script>

在Value-add包中,binding的propertyKey属性能够支持“.”的使用,这允许您指定某个特定的子属性。对于某些已经从Control基类被移除的属性(例如visible),您能够通过子属性来访问到它们。下面的示例展示了如何设定一个Button元素的style属性。
<script type="text/xml-script">
    
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005"
        xmlns:"JavaScript: Sys.UI, Sys"
>
        
<components>
            
<textbox id="Name" />
            
<label id="FirstName">
                
<bindings>
                    
<binding dataContext="Name" dataPath="text" 
                        property
="text"/>    
                
</bindings>
            
</label>
            
<button id="button2">
                
<click>
                    
<setPropertyAction target="text1" property="element" 
                        propertyKey
="style.borderColor" value="black" />
                
</click>
            
</button>
        
</components>
    
</page>
</script>

这个示例也展示了action的使用方式:setPropertyActionButton控件的click事件触发时被调用。


References

在CTP版本中您能够在XML-Script添加对于脚本的引用,在Value-add Beta版本中并没有支持这个功能。RTM版本很可能会解决这个问题。
Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

15 条回复

  1. 老赵
    admin
    链接

    老赵 2006-10-23 02:49:00

    Whitepater的理解就到此为止了,基本上了解了CTP和RTM的差别。接下来该更加仔细地学习了。哎,只是工作似乎也忙起来了……

  2. henry
    *.*.*.*
    链接

    henry 2006-10-23 09:42:00

    楼主学习的精神真让人敬佩,在这么短的时间就把东西整理出来。
    我真是望尘莫及!

  3. MK2
    *.*.*.*
    链接

    MK2 2006-10-23 11:18:00

    `````晕,两天时间就全部翻译完了````

  4. Allen Zhang
    *.*.*.*
    链接

    Allen Zhang 2006-10-23 11:24:00

    我一直没有接触过Atlas,来看这个东西看不太懂。有没有系统一点学习Ajax的地方呀?

  5. 老赵
    admin
    链接

    老赵 2006-10-23 13:25:00

    @Allen Zhang
    目前似乎只有官方文档。:)

  6. 一叶[匿名][未注册用户]
    *.*.*.*
    链接

    一叶[匿名][未注册用户] 2006-10-23 14:57:00

    怎么让vs支持代码提示功能???

  7. 老赵
    admin
    链接

    老赵 2006-10-23 15:05:00

    @一叶[匿名]
    您可以看一下这里:
    http://www.cnblogs.com/JeffreyZhao/category/72911.html

    不过现在的XML-Script已经改变了很多了,以前的提示功能已经没有什么大用了……

  8. 小蜗牛
    *.*.*.*
    链接

    小蜗牛 2006-10-23 19:44:00

    你竟然真的全部翻译完了。:)

  9. 刚刚
    *.*.*.*
    链接

    刚刚 2006-10-26 14:14:00

    @Allen Zhang
    建议你到微软网站上去下载苏鹏讲师的《Ajax与Atlas开发系列课程》视频讲座,学习后相信就能对AJAX技术有更多的了解了。
     

  10. 淡泊江湖
    *.*.*.*
    链接

    淡泊江湖 2006-11-06 20:25:00

    粗略地“扫”了你翻译的大作,辛苦了!

    我是AJAX门外汉,关注你的Blog!

  11. 老赵
    admin
    链接

    老赵 2006-11-06 21:31:00

    @淡泊江湖
    多谢支持。:)

  12. charming[匿名][未注册用户]
    *.*.*.*
    链接

    charming[匿名][未注册用户] 2006-11-14 12:38:00

    赵兄,才看到,,,,一句话:佩服

  13. 老赵
    admin
    链接

    老赵 2006-11-14 12:44:00

    @charming[匿名]
    :)

  14. 共同学习,共同进步
    *.*.*.*
    链接

    共同学习,共同进步 2007-03-18 19:46:00

    请问老赵哥Value-add是什么意思呀,谢谢

  15. 老赵
    admin
    链接

    老赵 2007-03-18 21:38:00

    @共同学习,共同进步
    就是现在的Futures CTP。:)

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我