ASP.NET2.0控件一览

相比ASP.NET1.X,ASP.NET2.0带来很多的改变,本系列将从控件的方面来看看2.0的控件方面的各种新增和改进.本系列文章假设读者已经对1.x的控件比较的熟悉,因为2.0和1.x很多相同的地方将不会涉及,着重谈谈不一样的地方,方便大家对ASP.NET2.0的控件有进一步的了解和更快的掌握.(PS:本系列算是自己的学习心得,很多地方不足,望大家指正.)

好了,废话少说,让我们开始进入ASP.NET2.0的控件殿堂吧!


ASP.NET 2.0 引入了许多新的服务器控件,能够为数据访问、登录安全、向导导航、菜单、树视图、门户等提供功能强大的声明性支持。这些控件中,许多都利用了 ASP.NET 的核心应用程序服务,用于数据访问、成员资格与角色,以及个性化设置等方案。

目前,2.0的控件分为以下几个方面:
  标准控件
  数据控件
  验证控件
  登录控件
  导航控件
  Web 部件控件
  HTML 控件

由于服务器控件继承自Control或WebControl类,所以2.0的控件统一多了2个重要的属性:EnableTheming(指示控件是否可以有主题),SkinID(提供控件外观的控件外观的SkinId).
还有1个很有用的方法:Focus(为控件设置输入焦点).

让我们从标准控件谈起,第一篇来看看标准控件中1.X已有的控件有哪些变化.

Label:
基本无变化.


Literal:
Mode属性:确定是转换文本还是将文本编码

可以将 Mode 属性设置为以下值:
Transform(默认值):添加到控件中的任何标记都将进行转换,以适应请求浏览器的协议。
PassThrough:添加到控件中的任何标记都将按原样呈现在浏览器中。
Encode: 添加到控件中的任何标记都将使用 HtmlEncode 方法进行编码,该方法将把 HTML 编码转换为其文本表示形式。例如,<b> 标记将呈现为 &lt;b&gt;。当希望浏览器显示而不解释标记时,编码将很有用。编码对于安全也很有用,有助于防止在浏览器中执行恶意标记,显示来自不受信任的源的字符串时推荐使用此设置


TextBox:
AutoCompleteType属性:记忆客户端输入的内容类型.
通过这个属性可以记忆各种类型输入,比如Email.最大的好处便是只记忆想要保存的类型.


Button:
OnClientClick属性:在客户端OnClick上执行的客户端脚本.
这个属性的加入,大大的方便了程序开发,不用以前那样通过代码添加属性的方式来实现客户端脚本.

PostBackUrl属性:获取或设置单击 Button 控件时从当前页发送到的网页的 URL。
很有用的1个属性,通过这个属性使您可以使用 Button 控件执行跨页发送。默认为空,即传回本页.

UseSubmitBehavior属性:
属性设置为 true 以使 Button 控件使用基于客户端脚本的回发,为false便是基于ASP.NET 回发机制。(调用__doPostBack函数实现)


LinkButton,ImageButton:
同Button类似,只是没有UseSubmitBehavior属性.


HyperLink:
ImageUrl属性:显示图片的Url.
设置该属性后便是图片链接.

 

ASP.NET2.0中继承自ListControl类的控件,都具有1个很有用的属性AppendDataBoundItems(获取或设置一个值,该值指示是否在绑定数据之前清除列表项).但此项属性设置为True的时候,便可以实现列表项与绑定项同时存在.
比如:"请选则",就可以设置为列表项,绑定数据后出现在第一项,这样便不用在后台代码增加默认项了,非常的方便.

DropDownList:
增加上述属性,其余变化不大.

ListBox:
Row属性:显示可见行的数目.

CheckBox,CheckBoxList:
基本无变化

RadioButton,RadioButtonList:
基本无变化

Panel:
ScrollBars属性:面板滚动条的外观.(把GridView放入面板上,可以很简单的实现带滚动条的GridView)

GroupingText 属性:面板控件中包含的子控件的标题文本。默认值为空字符串 ("")

DefaultButton属性:面板的默认按钮.
可将 TextBox 控件和 Button 控件放置在 Panel 控件中,然后通过将 Panel 控件的 DefaultButton 属性设置为面板中某个按钮的 ID 来定义一个默认的按钮。如果用户在面板内的文本框中进行输入时按 Enter,这与用户单击特定的默认按钮具有相同的效果。这有助于用户更有效地使用项目窗体。


其余控件基本上无变化.


小结:
本文就ASP.NET1.X和ASP.NET2.0都存在的标准控件做了个比较,写出了2.0下该类控件的变化,主要是简单的介绍,便于有1.X开发基础的程序员能够快速的掌握2.0下的原有的控件.具体的例子请参考微软的MSDN.
BulletedList:
该控件创建一个无序或有序(编号的)的项列表,它们分别呈现为 HTML ul 或 ol 元素。可以指定项、项目符号或编号的外观;静态定义列表项或通过将控件绑定到数据来定义列表项;也可以在用户单击项时作出响应。

BulletedList 与 ListBox、DropDownList 及其他 ASP.NET 列表控件派生自相同的 ListControl 类,因此其用法与这些控件的用法类似。相信大家一定可以迅速上手,接下来谈谈特别的几个属性.


BulletImageUrl属性:获取或设置为 BulletedList 控件中的每个项目符号显示的图像的路径。

BulletStyle属性:指定项目符号样式
具有以下几种样式:
      成员名称     说明
    Circle     项目符号样式为空心圆。 
    CustomImage     项目符号样式为自定义图像。 
    Disc     项目符号样式为实心圆。 
    LowerAlpha     项目符号样式为小写字母(a、b、c...)。 
    LowerRoman     项目符号样式为小写罗马数字(i、ii、iii...)。 
    NotSet     不设置项目符号样式。呈现 BulletedList 控件的浏览器将决定要显示的项目符号样式。 
    Numbered     项目符号样式为数字(1、2、3...)。 
    Square     项目符号样式为实心四方形。 
    UpperAlpha     项目符号样式为大写字母(A、B、C...)。 
    UpperRoman     项目符号样式为大写罗马数字(I、II、III...)。 

DisplayMode属性:项目符号列表的显示模式.
通过该属性,我们可以设置项目以Text,LinkButton,HyperLink三种方式来显示.

 Text:文本模式显示.

 HyperLink 值允许将列表内容显示为超链接。单击超链接时,它定位到相应的 URL。使用 Value 属性指  定超链接定位到的 URL。选择HyperLink 模式后,Target属性可以设置打开的方式.

 LinkButton 字段允许将列表内容显示为链接。当单击链接按钮时,使用 BulletedList.Click 事件回发  到服务器。
 
 
HiddenField:
提供了一种在页面中存储信息但不显示信息的方法。例如,可以在 HiddenField 控件中存储用户首选项设置。若要将信息放入 HiddenField 控件中,请在两次回发之间将其 Value 属性设置为要存储的值。

该控件相当于<input type="hidden">.


FileUpload:
上传控件,相当于<input type="file">,用法和1.X下转化为服务器控件的<input type="file">差不多.


MultiView和View:
MultiView和View服务器控件用作其他控件和标记的容器,并提供了一种可方便地显示信息的替换视图的方式。

使用MultiView和View控件执行如下任务:

    * 可以使用MultiView和View控件作为创建多个Panel控件的一种替代方法。
    * 创建多页窗体。MultiView 和View控件可以提供与Wizard控件相似的行为。Wizard控件尤其适合于创建用户分步骤填写的窗体。Wizard控件还支持更多内置 UI 元素(如页眉和页脚)、“上一页”和“下一页”按钮以及模板。如果要创建根据条件(而不是按顺序)更改的显示,或者如果不需要 Wizard 控件支持的额外功能,则可以使用 MultiView 控件来代替 Wizard。

从上面的介绍可以知道,MultiView和View,Wizard控件的出来可以使我们更快更简单的创建出多步骤的操作.

MultiView和View的用法非常的简单,相当于Panel,只需要把任意的View放入MultiView中即可.MultiView的ActiveView属性可以设置初始的显示View的Index.

接下来关键的是怎样实现多个View之间的切换,我们有两种方法可以实现.
第一种方法:
可以向每个 View 控件添加一个按钮控件(Button、LinkButton 或 ImageButton)。然后可以将每个按钮的 CommandName 和 CommandArgument 属性设置为保留值以使 MultiView 控件移动到另一个视图。

下表列出了保留的 CommandName 值和相应的 CommandArgument 值。 
CommandName 值     CommandArgument 值

NextView
    

(没有值)

PrevView
    

(没有值)

SwitchViewByID
    

要切换到的 View 控件的 ID。

SwitchViewByIndex
    

要切换到的 View 控件的索引号。

下面的示例显示一个包含三个 View 控件的 MultiView 控件。每个 View 控件包含一个移动到特定 View 控件的 Button 控件。
示例代码
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
  <asp:View ID="View1" runat="server">
    View 1<br />
    <br />
    <asp:Button ID="Button1" runat="server" 
      CommandArgument="View2" 
      CommandName="SwitchViewByID"
      Text="Go to View2" />
  </asp:View>
  <asp:View ID="View2" runat="server">
    View 2<br />
    <br />
    <asp:Button ID="Button2" runat="server" 
      CommandArgument="View3" 
      CommandName="SwitchViewByID"
      Text="Go to View 3" />
  </asp:View>
  <asp:View ID="View3" runat="server">
    View 3<br />
    <br />
    <asp:Button ID="Button3" runat="server" 
      CommandArgument="View1" 
      CommandName="SwitchViewByID"
      Text=Go to View 1" />
  </asp:View>
</asp:MultiView></div>

这种方法可以很简单的不需要代码实现View的切换.


第二种方法就是代码控制的方式.
MultiView.ActiveViewIndex和MultiView.SetActiveView方法可以实现.

它们的区别就是:
MultiView.ActiveViewIndex方法是设置View的索引值.View 控件的索引是由它在 MultiView 控件中的声明顺序确定的。例如,在 MultiView 控件中声明的第一个 View 控件的索引为 0。
MultiView.SetActiveView方法是将指定的 View 控件设置为 MultiView 控件的活动视图。
原文地址:https://www.cnblogs.com/tommyli/p/527329.html