Ajax Control Toolkit 34个服务器端控件(2)

3. Animation

【功能概述】

28个控件种效果最酷的!顾名思义实现动画效果。它是一个插入式,可扩展的框架可以方便的为你的页面添加动画效果。

【细节】

请参考页面代码阅读下面的细节内容:

(1)Sys.UI.DomElement.getLocation(b) 取得控件位置的函数,常用!!!
     (2)动画分为两种:Animation Action 后者的强大让我很兴奋
     (3)<Sequence>  </Sequence> 顺序执行的动画脚本
     (4)<Parallel>  <Parallel >  并发执行的动画脚本
     (5)【Action】 <StyleAction AnimationTarget="btnCloseParent" Attribute="opacity" value="0" /> 控制目标元素外观样式,属性--值的格式修改,一个元素可以应用多个StyleAction
     (6)【Action】<EnableAction AnimationTarget="ctl00_ContentPlaceHolder1_btnInfo" Enabled="true" /> 控件是否可用使用的方式跟上面是一样的,当前控件可省略AnimationTarget
   (7)【Action】 <ScriptAction Script="Cover($get('ctl00_ContentPlaceHolder1_btnInfo'), $get('flyout'));" />执行一段脚本的Action          
    (8) 【Action】 <HideAction />隐藏目标的控件
    (9) 【Action】<OpacityAction AnimationTarget="info" Opacity="0" /> 设置透明度的Action
   (10)【Animation】 <FadeIn AnimationTarget="info" Duration=".2"/>       <FadeOut /> 淡入淡出   
  (11)【Animation】<Scale ScaleFactor="0.05" Center="true" ScaleFont="true" FontUnit="px" />    控制目标元素的大小但是注意:If scaleFont is true, the size of the font will also scale with the element.  If center is true, then the element's center will not move as it is scaled. It is important to note that the target must be positioned (i.e. absolutely) so that settings its top/left properties will change its location in order for center to have an effect.
     (12) 【Animation】    <Pulse Duration=".1" /> 脉搏跳动效果         
     (13)【Animation】 <Color Duration=".2" StartValue="#FFFFFF" EndValue="#FF0000" Property="style" PropertyKey="color" />  颜色渐变效果,设置起始结束颜色就可以
     (14)  【Animation】 <Resize Width="260" Height="280" />改变元素的大小Action

(15)动画效果是在用户某一个动作发生的时候触发,触发的时机包括:OnLoad  OnClick  OnMouseOver OnMouseOut OnHoverOver OnHoverOut

正式版的页面文件为动画脚本添加了注释更加清晰易懂.上面列出的是常用的一些动画效果,全部资料参见Anmation Reference。

仔细阅读Animation的页面代码,其实我们已经提前触摸到了Xaml的编程风格。Asp.net Ajax之后的下一代WEB界面是WPF/E,WPF/E现在支持的是”javascript+Xaml” 还不支持”C# + Xaml”。

下一代的WEB UI会是怎样的?下一个版本的Asp.net 会怎样安排Ajax的位置?WPF/E会不会被整合在新版本的Asp.net中呢?期待中……

【示意代码】

代码示意:
   <ajaxToolkit:AnimationExtender ID="ae"
  runat="server" TargetControlID="ctrl">
    <Animations>
        <OnLoad>   </OnLoad>
        <OnClick>   </OnClick>
        <OnMouseOver>   </OnMouseOver>
        <OnMouseOut>   </OnMouseOut>
        <OnHoverOver>   </OnHoverOver>
        <OnHoverOut>   </OnHoverOut>
    </Animations>
</ajaxToolkit:AnimationExtender>

 

4. AutoComplete  NEW!!!

【功能概述】

AutoComplete控件是对Asp.net文本框控件的扩展,当用户词汇前面的字母时以弹出区域的形式给出备选词。这个功能的完成依赖于特定的Web Service。

在正式版的Ajax Control Toolkit中看到自动完成扩展控件有一种感觉:它终于出现在了它应该出现的地方。之前AutoComplete控件是在CTP版本中以核心组件的形式出现的,这个功能极为明确的控件被归类到核心组件,我还是比较迷惑。正式版中它终于成为了一个扩展控件。

Google的自动完成功能,新浪 网易等信箱的收件人自动完成功能是这个功能的成功应用。

【细节】
   
从Atlas的版本开始,AutoComplete的使用方法就没有太大的改变,只要注意:

(1)调用的Web Service方法签名有要求:
           [WebMethod]
           public string[] GetCompletionList(string prefixText, int count) { ... }
     (2)MinimumPrefixLength最短前缀字符数,就是说你至少要键入几个字符才会出现提示

5. Calendar NEW!!!

功能概述

Calendar同样是对文本框的扩展,当点击文本框的时候弹出日期选择选项。现在的版本提供的功能已经和WinForm中的日期控件一样,可以通过点击日期选择,点击箭头在年月之间切换。

细节
         (1)同样是对文本框的扩展,文本框获得焦点就会出现日期选择,样式是可以自定义的
         (2)虽然一定是对文本框的扩展但是我们还是可以指定弹出按钮PopupButtonID,一旦这个值设定了,文本框获得焦点也不会弹出日期选择
         (3)不需要把它放在UpdatePanel中

6. CascadingDropDown

【功能概述】

CascadingDropDown 控件是对ASP.NET DropDownList control的扩展,实现对一个DropDownList操作时其它DropDownList发生相应的变化。这个功能的实现依赖于Web Service。

细节

(1)如果使用Web service 方法签名必须符合下面的形式:
                [WebMethod]
                public CascadingDropDownNameValue[] GetDropDownContents(
                string knownCategoryValues, string category){...}

(2)在阅读代码的时候请关注:Category属性。官方说法The name of the category this DropDownList represents 实打开~/App_Data/CarsService.xml你就发现这是Xml的元素标签。从这个角度我们就解决了为什么联动,即联动的本质;同时也明白了调用Service的参数约定。
示意代码

      <ajaxToolkit:CascadingDropDown ID="CascadingDropDown1" runat="server" TargetControlID="DropDownList1" Category="Make"  PromptText="Please select a make"  LoadingText="[Loading makes ]"  ServicePath="CarsService.asmx" ServiceMethod="GetDropDownContents"/>
                <ajaxToolkit:CascadingDropDown ID="CascadingDropDown2" runat="server" TargetControlID="DropDownList2" Category="Model" PromptText="Please select a model" LoadingText="[Loading models ]" ServiceMethod="GetDropDownContentsPageMethod" ParentControlID="DropDownList1"/>
                <ajaxToolkit:CascadingDropDown ID="CascadingDropDown3" runat="server" TargetControlID="DropDownList3" Category="Color" PromptText="Please select a color" LoadingText="[Loading colors ]" ServicePath="~/CascadingDropDown/CarsService.asmx" ServiceMethod="GetDropDownContents" ParentControlID="DropDownList2"/>
   

另外页面上还有一段定义UpdatePanel的代码很典型,可以作为参考:

  <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" RenderMode="inline">
            <ContentTemplate>
                <asp:Label ID="Label1" runat="server" Text="[No response provided yet]" />
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="DropDownList3" EventName="SelectedIndexChanged" />
            </Triggers>
        </asp:UpdatePanel>

7. CollapsiblePanel

功能概述

这个控件几乎在每一个页面上都出现了。它是非常灵活的一个控件,可以扩展任何ASP.NET Panel control。在页面上轻松实现展开收缩效果。这种效果我们最熟悉的恐怕就是XP的文件任务栏了。

细节

(1)    CollapsiblePanel 默认认为使用了 标准 CSS box model 早期的浏览器要!DOCTYPE 中设置页面为自适应方式提交数据rendered in IE's standards-compliant mode.

(2)    可以自动展开 自动收缩Autoexpand="true" AutoCollapse="true"但是这两个本身是互斥的不能同时为True;如果设置了这两个属性其中一个为True就不要在设置 Collapsed="True",这样就没有意义了。

(3)    TextLabelID="Label1"这个属性有什么深意/高级的操作么?我还在研究。。。

 代码示意:
   <ajaxToolkit:CollapsiblePanelExtender ID="cpe" runat="Server"
    TargetControlID="Panel1"
    CollapsedSize="0"
    ExpandedSize="300"
    Collapsed="True"
    ExpandControlID="LinkButton1"
    CollapseControlID="LinkButton1"
    AutoCollapse="False"
    AutoExpand="False"
    ScrollContents="True"
    TextLabelID="Label1"
    CollapsedText="Show Details "
    OpenedText="Hide Details" 
    ImageControlID="Image1"
    ExpandedImage="~/images/collapse.jpg"
    CollapsedImage="~/images/expand.jpg"
    ExpandDirection="Height"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值