Asp.net Ajax 编程备忘录----细数28个服务器端控件 [原创]
时间:2006-11-22 作者:坚强2002
开篇:To forget what we think we know about the limitations of the Web, and begin to imagine a wider, richer range of possibilities.
-------------Jesse James Garrett

细节决定成败,回头再说现在开始…………
1.Accordion
功能:实现了QQ、Msn好友分类的折叠效果,就像包含了多个CollapsiblePanels
细节: (1)不要把Accordion放在Table种同时又把 FadeTransitions 设置为True,这将引起布局混乱
(2)每一个 AccordionPane control 有一个Header 和Content的 template
(3)在Content中可以进行任意扩展,你什么都可以放上^_^
(4)有三种AutoSize modes :None(推荐) Limit Fill
(5)Accordion表现的更像是一个容器
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<ajaxToolkit:AccordionID="MyAccordion"runat="server"SelectedIndex="0"HeaderCssClass="accordionHeader"
Asp.net Ajax编程知识ContentCssClass="accordionContent"FadeTransitions="false"FramesPerSecond="40"
Asp.net Ajax编程知识TransitionDuration="250"AutoSize="None">
Asp.net Ajax编程知识<Panes>
Asp.net Ajax编程知识<ajaxToolkit:AccordionPaneID="AccordionPane1"runat="server">
Asp.net Ajax编程知识<Header>
Asp.net Ajax编程知识<ahref=""onclick="returnfalse;"class="accordionLink">1.Accordion</a></Header>
Asp.net Ajax编程知识<Content>
Asp.net Ajax编程知识</Content>
Asp.net Ajax编程知识</ajaxToolkit:AccordionPane>
Asp.net Ajax编程知识</Panes>
Asp.net Ajax编程知识</ajaxToolkit:Accordion>
 

2. AlwaysVisibleControl
功能:最多的应用是在线小说的目录和不胜其烦的浮动小广告
细节: (1)避免控件闪烁,把这个控件要在目标位置时使用absolutely position
(2) HorizontalSide="Center" VerticalSide="Top" 使用这个方法控制浮动在什么位置
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<cc1:AlwaysVisibleControlExtenderID="AlwaysVisibleControlExtender1"HorizontalSide="Center"VerticalSide="Top"TargetControlID="Panel1"runat="server">

3.Animation
功能:28个控件种效果最酷的!顾名思义实现动画效果
细节: (1)不只是控件:pluggable, extensible framework
(2)用在什么时候:OnLoad OnClick OnMouseOver OnMouseOut OnHoverOver OnHoverOut
(3)具体使用有很多可以谈的,有理由单独写一个Animation Xml 编程介绍
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<ajaxToolkit:AnimationExtenderID="ae"
Asp.net Ajax编程知识runat="server"TargetControlID="ctrl">
Asp.net Ajax编程知识<Animations>
Asp.net Ajax编程知识<OnLoad>Asp.net Ajax编程知识</OnLoad>
Asp.net Ajax编程知识<OnClick>Asp.net Ajax编程知识</OnClick>
Asp.net Ajax编程知识<OnMouseOver>Asp.net Ajax编程知识</OnMouseOver>
Asp.net Ajax编程知识<OnMouseOut>Asp.net Ajax编程知识</OnMouseOut>
Asp.net Ajax编程知识<OnHoverOver>Asp.net Ajax编程知识</OnHoverOver>
Asp.net Ajax编程知识<OnHoverOut>Asp.net Ajax编程知识</OnHoverOut>
Asp.net Ajax编程知识</Animations>
Asp.net Ajax编程知识</ajaxToolkit:AnimationExtender>

4.CascadingDropDown
功能:DropDownList联动,调用Web Service
细节: (1)DropDownList行为扩展
(2)如果使用Web service 方法签名必须符合下面的形式:
[WebMethod]
public CascadingDropDownNameValue[] GetDropDownContents(
string knownCategoryValues, string category){...}
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<ajaxToolkit:CascadingDropDownID="CascadingDropDown1"runat="server"TargetControlID="DropDownList1"Category="Make"PromptText="Pleaseselectamake"LoadingText="[LoadingmakesAsp.net Ajax编程知识]"ServicePath="CarsService.asmx"ServiceMethod="GetDropDownContents"/>
Asp.net Ajax编程知识<ajaxToolkit:CascadingDropDownID="CascadingDropDown2"runat="server"TargetControlID="DropDownList2"Category="Model"PromptText="Pleaseselectamodel"LoadingText="[LoadingmodelsAsp.net Ajax编程知识]"ServiceMethod="GetDropDownContentsPageMethod"ParentControlID="DropDownList1"/>
Asp.net Ajax编程知识<ajaxToolkit:CascadingDropDownID="CascadingDropDown3"runat="server"TargetControlID="DropDownList3"Category="Color"PromptText="Pleaseselectacolor"LoadingText="[LoadingcolorsAsp.net Ajax编程知识]"ServicePath="~/CascadingDropDown/CarsService.asmx"ServiceMethod="GetDropDownContents"ParentControlID="DropDownList2"/>
Asp.net Ajax编程知识

5.CollapsiblePanel
功能:Xp任务栏折叠效果
细节: (1)可以扩展任何一个 ASP.NET Panel control
(2) CollapsiblePanel 默认认为使用了 标准 CSS box model 早期的浏览器要!DOCTYPE 中设置页面为自适应方式提交数据rendered in IE's standards-compliant mode.
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<ajaxToolkit:CollapsiblePanelExtenderID="cpe"runat="Server"
Asp.net Ajax编程知识TargetControlID="Panel1"
Asp.net Ajax编程知识CollapsedSize="0"
Asp.net Ajax编程知识ExpandedSize="300"
Asp.net Ajax编程知识Collapsed="True"
Asp.net Ajax编程知识ExpandControlID="LinkButton1"
Asp.net Ajax编程知识CollapseControlID="LinkButton1"
Asp.net Ajax编程知识AutoCollapse="False"
Asp.net Ajax编程知识AutoExpand="False"
Asp.net Ajax编程知识ScrollContents="True"
Asp.net Ajax编程知识TextLabelID="Label1"
Asp.net Ajax编程知识CollapsedText="ShowDetailsAsp.net Ajax编程知识"
Asp.net Ajax编程知识OpenedText="HideDetails"
Asp.net Ajax编程知识ImageControlID="Image1"
Asp.net Ajax编程知识ExpandedImage="~/images/collapse.jpg"
Asp.net Ajax编程知识CollapsedImage="~/images/expand.jpg"
Asp.net Ajax编程知识ExpandDirection="Height"/>
6.ConfirmButton
功能:就是弹出来一个确定对话框
细节: 本人认为不是最简单实现的方法,我的方法:
this.Button1.Attributes["onclick"]="javascript:return confirm('确定要停止下载么?');";
不知道是不是我没有发现这个控件的其它优势。

7.DragPanel
功能:页面拖动
细节: (1)TargetControlID 要拖动的控件
(2)DragHandleID 拖动的标题栏所在的ControlID
Asp.net Ajax编程知识代码示意
Asp.net Ajax编程知识
<ajaxToolkit:DragPanelExtenderID="DPE1"runat="server"
Asp.net Ajax编程知识TargetControlID="Panel3"
Asp.net Ajax编程知识DragHandleID="Panel4"/>
8.DropDown
功能:什么都可以以下拉菜单的形式弹出来
细节: (1)TargetControlID要在什么控件上实现扩展
(2)DropDownControlID弹出来什么
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<asp:PanelID="DropPanel"runat="server"CssClass="ContextMenuPanel"Style="display:none;
Asp.net Ajax编程知识visibility:hidden;"
>
Asp.net Ajax编程知识<asp:LinkButtonrunat="server"ID="Option1"Text="Option1"CssClass="ContextMenuItem"
Asp.net Ajax编程知识OnClick="OnSelect"/>
Asp.net Ajax编程知识<asp:LinkButtonrunat="server"ID="Option2"Text="Option2"CssClass="ContextMenuItem"
Asp.net Ajax编程知识OnClick="OnSelect"/>
Asp.net Ajax编程知识<asp:LinkButtonrunat="server"ID="Option3"Text="Option3(ClickMe!)"CssClass="ContextMenuItem"
Asp.net Ajax编程知识OnClick="OnSelect"/>
Asp.net Ajax编程知识</asp:Panel>
Asp.net Ajax编程知识<cc1:DropDownExtenderrunat="server"ID="DDE"TargetControlID="TextLabel"
Asp.net Ajax编程知识DropDownControlID="DropPanel"/>

9.DropShadow
功能:阴影效果,其实可以放给美工实现
细节: (1)Width 单位:px 默认5px
(2)Opacity 不透明度0-1.0 默认.5
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<ajaxToolkit:DropShadowExtenderID="dse"runat="server"
Asp.net Ajax编程知识TargetControlID="Panel1"
Asp.net Ajax编程知识Opacity=".8"
Asp.net Ajax编程知识Rounded="true"
Asp.net Ajax编程知识TrackPosition="true"/>
10.DynamicPopulate
功能:能实用Web Service或页面方法来替换控件的内容
细节: (1)ClearContentsDuringUpdate 替换之前先清除以前的内容(默认True)
(2)PopulateTriggerControlID 触发器绑定的控件 单击时触发
(3)ContextKey传递给Web Service的随机字符串
(4) Web Service方法签名必须符合下面的形式:
[WebMethod]
string DynamicPopulateMethod(string contextKey)
{...}
Note you can replace "DynamicPopulateMethod" with a naming of your choice, but the return
type and parameter name and type must exactly match, including case.
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<ajaxToolkit:DynamicPopulateExtenderID="dp"runat="server"
Asp.net Ajax编程知识TargetControlID="Panel1"
Asp.net Ajax编程知识ClearContentsDuringUpdate="true"
Asp.net Ajax编程知识PopulateTriggerControlID="Label1"
Asp.net Ajax编程知识ServiceMethod="GetHtml"
Asp.net Ajax编程知识UpdatingCssClass="dynamicPopulate_Updating"/>
Asp.net Ajax编程知识
11.FilteredTextBox
功能:文本框数据过滤
细节: (1)过滤条件Numbers LowercaseLetters UppercaseLetters Custom
(2)过滤条件也可以是Custom的组合 FilterType="Custom, Numbers"
(3)ValidChars="+-=/*()." Custom要定义这样的有效字符串
(4) 其实这是个鸡肋:你可以输入中文,聊胜于无,忍了
Asp.net Ajax编程知识示意代码:
Asp.net Ajax编程知识
<ajaxToolkit:FilteredTextBoxExtenderID="ftbe"runat="server"
Asp.net Ajax编程知识TargetControlID="TextBox3"
Asp.net Ajax编程知识FilterType="Custom,Numbers"
Asp.net Ajax编程知识ValidChars="+-=/*()."/>
12.HoverMenu
功能:鼠标靠近时显示菜单,可以用在在线数据修改的表格上作为功能菜单
细节: (1)PopupControlID要弹出来什么
(2)PopupPostion 在哪里弹出来Left (Default), Right, Top, Bottom, Center.
(3)OffsetX/OffsetY 弹出项与源控件的距离
(4) PopDelay 弹出延时显示 单位milliseconds. Default is 100.
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<ajaxToolkit:HoverMenuExtenderID="hme2"runat="Server"
Asp.net Ajax编程知识TargetControlID="Panel9"
Asp.net Ajax编程知识HoverCssClass="popupHover"
Asp.net Ajax编程知识PopupControlID="PopupMenu"
Asp.net Ajax编程知识PopupPosition="Left"
Asp.net Ajax编程知识OffsetX="0"
Asp.net Ajax编程知识OffsetY="0"
Asp.net Ajax编程知识PopDelay="50"/>
13.ModalPopup
功能:Xp的关机效果,后面全部灰掉,很多邮箱的删除对话框都着种效果
细节: (1)本质上讲这是一个对话框模版,比ConfirmButton有意义有更强的扩展性!
(2)从下面的代码中我们发现 点OK的时候可以调用后台方法
(3)同时可以执行一段脚本
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<asp:PanelID="Panel2"runat="server"CssClass="modalPopup"style="display:none">
Asp.net Ajax编程知识<p>
Asp.net Ajax编程知识<asp:LabelID="Label1"runat="server"BackColor="Blue"ForeColor="White"Style="position:relative"
Asp.net Ajax编程知识Text="信息提示"></asp:Label>&nbsp;</p>
Asp.net Ajax编程知识<p>确定要删除当前下载的任务么?</p>
Asp.net Ajax编程知识<pstyle="text-align:center;">
Asp.net Ajax编程知识<asp:ButtonID="Button1"runat="server"Text="OK"></asp:Button>
Asp.net Ajax编程知识<asp:ButtonID="Button2"runat="server"Text="Cancel"></asp:Button>
Asp.net Ajax编程知识</p>
Asp.net Ajax编程知识</asp:Panel>
Asp.net Ajax编程知识<ajaxToolkit:ModalPopupExtenderID="ModalPopupExtender"runat="server"TargetControlID="LinkButton1"
Asp.net Ajax编程知识PopupControlID="Panel2"BackgroundCssClass="modalBackground"DropShadow="true"
Asp.net Ajax编程知识OkControlID="Button1"OnOkScript="onOk()"CancelControlID="CancelButton"/>
14.MutuallyExlcusiveCheckBox
功能:互斥复选框就像Radio一样
细节: (1)Key属性用来分组就像RdiolistGroup一样
(2)argetControlID用来绑定已有的CheckBox
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<ajaxToolkit:MutuallyExclusiveCheckboxExtenderrunat="server"
Asp.net Ajax编程知识ID="MustHaveGuestBedroomCheckBoxEx"
Asp.net Ajax编程知识TargetControlID="MustHaveGuestBedroomCheckBox"
Asp.net Ajax编程知识Key="GuestBedroomCheckBoxes"/>
15.NoBot
功能:Captcha 图灵测试 反垃圾信息控件
细节: (1)OnGenerateChallengeAndResponse 这个属性是EventHandler<NoBotEventArgs> 调用服务器端的方法,注意方法签名
例如: protected void CustomChallengeResponse(object sender, NoBotEventArgs e) {……}
Asp.net Ajax编程知识代码示意:
Asp.net Ajax编程知识
<ajaxToolkit:NoBot
Asp.net Ajax编程知识
ID="NoBot2"
Asp.net Ajax编程知识runat="server"
Asp.net Ajax编程知识OnGenerateChallengeAndResponse="CustomChallengeResponse"
Asp.net Ajax编程知识ResponseMinimumDelaySeconds="2"
Asp.net Ajax编程知识CutoffWindowSeconds="60"
Asp.net Ajax编程知识CutoffMaximumInstances="5"/>
16.NumericUpDown
功能:实现Winform里面的Updown
细节: (1)普通整数增减
(2)值列表循环显示比如下面的第二个例子RefValues
(3)调用Web Service的格式:
Asp.net Ajax编程知识<ajaxToolkit:NumericUpDownExtenderID="NUD1"runat="server"
Asp.net Ajax编程知识TargetControlID="TextBox1"
Asp.net Ajax编程知识Width="100"
Asp.net Ajax编程知识RefValues="January;February;March;April"
Asp.net Ajax编程知识TargetButtonDownID="Button1"
Asp.net Ajax编程知识TargetButtonUpID="Button2"