ASPNETWeb服务器控件_第1页
ASPNETWeb服务器控件_第2页
ASPNETWeb服务器控件_第3页
ASPNETWeb服务器控件_第4页
ASPNETWeb服务器控件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章ASP.NET Web效劳器控件7.1ASP.NET效劳器控件简介7.2根本Web效劳器控件Label控件Button控件LinkButton控件ImageButton控件TextBox控件DropDownList控件ListBox控件CheckBox控件 和CheckBoxList控件RadioButton控件和RadioButtonList控件Panel 控件7.3数据验证控件数据验证机制介绍RequiredFieldValidator控件CompareValidator控件RangeValidator 控件7.3.5RegularExpressionValidator控件Custo

2、mValidator 控件ValidationSummary控件第7章 ASP.NET Web效劳器控件7.1 ASP.NET效劳器控件简介创立 Web 窗体页时,可以使用以下控件类型: n HTML 效劳器控件 HTML 效劳器控件以HTML标记为根底而衍生出来的效劳器控件,HTML 效劳器控件比HTML标记多了两个属性,一个是“ runat="server" ,一个是“ id="控件名称" 。这两个属性的作用是控件可以在效劳器端作为一个对象使用。默认情况下,效劳器无法使用 Web 窗体页上的 HTML 元素,但是,通过将 HTML 元素转换为 HTM

3、L 效劳器控件,可将其公开为可在效劳器上编程的元素。如果要将ASP网页改写为ASP.NET网页,可以通过在原来的HTML标记中增加这两个属性,从而很容易的完成转换工作。n Web 效劳器控件HTML 效劳器控件只是使编程更简便,在功能上并没有超越HTML标记。而Web 效劳器控件那么是为了超越HTML标记而诞生的,Web 效劳器控件比 HTML 效劳器控件具有更多内置功能。Web 效劳器控件不只包括一般的窗体类型的控件,例如按钮和文本框,而且还包括特殊用途的控件,例如日历,另外还新增了数据验证控件和数据访问控件。控件新增的功能以及新增的控件不仅增强了ASP.NET的功能,同时将以往由开发人员完

4、成的许多繁琐重复的工作都交给控件去完成了。n 用户控件 虽然 ASP.NET提供了大量的效劳器控件,但它们并不能涵盖每一种情况。根据应用程序的需要用户可以自定义控件。定义用户控件所使用的编程技术与用于编写 Web 窗体页的技术相同,用户控件用文件扩展名 .ascx 来进行标识。本章主要介绍Web 效劳器控件中的一般的窗体类型的控件我们将这种类型的控件称为根本Web效劳器控件和数据验证控件,数据访问控件的使用将在第9章详细介绍。7.2 根本Web效劳器控件本节主要介绍如何使用根本Web效劳器控件,根本Web效劳器控件主要包括:n 可提供显示文本功能的Label控件;n 可提供提交或链接功能的三种

5、类型的按钮控件:标准命令按钮Button 控件、图形化按钮ImageButton 控件和超级链接样式按钮LinkButton 控件;n 可提供输入或选择功能的控件:TextBox 文本框控件、DropDownList下拉列表控件、ListBox列表框控件、CheckBox复选框控件和CheckBoxList复选框列表控件;RadioButton单项选择按钮控件和RadioButtonList单项选择按钮列表控件;n 可作为其他控件的容器的Panel 控件。7.2.1 Label控件Label控件是web效劳器控件中最简单的一个控件,用来在 Web 页上显示文本。它的最常用的属性是Text属性,

6、通过设置Text属性可以自定义显示文本声明Label控件的语法如下:<asp:label id="Message" runat=server>初始显示的文本</asp:label>可以使用此 id 引用以编程方式在运行时操作效劳器控件的对象模型,例如,在Page_Load事件处理程序中添加如下代码:Message.Text = "您好"7.2.2 Button控件Web 效劳器控件包括三种类型的按钮:标准命令按钮Button 控件、图形化按钮ImageButton 控件和超级链接样式按钮LinkButton 控件。这三种按钮都可提

7、供提交或链接功能,但具有不同的外观。当用户单击时,所有三种类型的按钮都会使窗体被提交给效劳器。这使得在基于效劳器的代码中,页面被处理,任何挂起的事件被引发。这些按钮还可引发它们自己的 Click 事件,您可以为这些事件编写事件处理程序。本节首先介绍如何使用标准命令按钮Button 控件。使用 Button 控件可以在 Web 页上创立普通按钮。下面通过一个实例介绍如何使用Button控件,该例的功能是单击Button控件时,Label控件显示的文字信息以及背景颜色会发生变化,同时Button控件显示的文字信息改变,并且此Button控件变为不可用的状态。具体的实现步骤如下:1. 单击【开始】|

8、【程序】|【Microsoft Visual Studio.NET】|【Microsoft Visual Studio.NET】。然后翻开前面已建的工程:WebCourse, 2. 在“解决方案资源管理器窗口中,新建一个文件夹:chapter7,在此文件夹中添加一个Web窗体:useButton.aspx。3. 在useButton.aspx 的“设计视图中,从“工具箱中的“web窗体工具箱中拖一个“Label控件和一个“Button控件到“设计视图中,并适当的调整位置,如图 7.1所示。图 7.1 useButton.aspx 的“设计视图4. 在useButton.aspx 的“设计视图中

9、,选中“Button按钮,单击右键,在弹出的快捷菜单中单击【属性】命令,如图 7.2所示,设置Text属性值为“Click Me。图 7.2 设置Button的属性5.Label1.Text="练习使用Button控件,请单击Click Me按钮"Label16. 在useButton.aspx 的“设计Label1.Text="单击按钮之后"Button1.Text="OK"Button1.Enabled=false;7. 在“解决方案资源管理器窗口中的文件useButton.aspx上右击,弹出快捷菜单,单击【生成并浏览】命令,可

10、以直接在VS.NET中浏览程序运行结果,如图 7.3所示。单击【练习】按钮之后,显示如图 7.4所示图 7.3 useButton.aspx的运行结果图 7.4单击【Click Me】按钮之后7.2.3 LinkButton控件LinkButton控件是在 Web 页上显示超级链接样式的按钮控件。 LinkButton 控件的外观与 HyperLink 控件相同,但功能与 Button控件相同。如果要在单击控件时链接到另一个 Web 页,请使用 HyperLink 控件,HyperLink的使用很简单,与<A>标记相类似,但它新增了图片链接的功能。下面通过一个实例介绍如何使用Lin

11、kButton控件,该例的功能是单击LinkButton控件时控件的外观发生变化。程序代码均写在LinkButton控件的Click事件处理程序中。 具体实现步骤如下:1. 仍在工程WebCourse中,在chapter7文件夹中,添加一个Web窗体:useLinkButton.aspx。2. 在UseLinkButton.aspx的“设计视图中,从“工具箱中的“web窗体工具箱中拖一个“LinkButton控件到“设计视图中,并适当的调整位置。将LinkButton控件的Text属性设置为“加外框线,如图 7.5所示。 图 7.5设置LinkButton控件的Text属性3. 在UseLin

12、kButton.aspx的“设计ifLinkButton1.Text="加外框线"elsee.Double;LinkButton1.Text="去外框线"4. 在Page_Load事件处理程序中,添加如下代码:Response.Write("<center><b>改变LinkButton控件的外观</b></center>");5. 在“解决方案资源管理器窗口中的文件UseLinkButton.aspx上右击,弹出快捷菜单,单击【生成并浏览】命令,可以直接在VS.NET中浏览程序运行结果

13、,如图 7.6所示。单击【加外框线】按钮,加上按钮的外框线,同时该控件显示【去外框线】,如图 7.7所示。再次单击此按钮,去掉按钮的外框线,同时该控件显示【加外框线】。图 7.6 UseLinkButton.aspx运行结果1图 7.7单击【加外框线】按钮之后7.2.4 ImageButton控件ImageButton控件与Button控件的功能相同的,单击按钮都可引发它们自己的 Click 事件,您可以编写相应的事件处理程序。所不同的是,使用ImageButton控件的ImageUrl属性,允许您将一个图形指定为按钮。这对于提供丰富的按钮外观非常有用。下面通过一个实例介绍如何使用ImageB

14、utton控件,该例的功能是单击ImageButton控件时控件的外观发生变化。程序代码均写在ImageButton控件的Click事件处理程序中。具体实现步骤如下:1. 仍在工程WebCourse中,在chapter7文件夹中,添加一个Web窗体:useImageButton.aspx。2. 在文件夹chapter7中新建一个文件夹:images,在这个新建的文件夹上右击,弹出快捷菜单,将光标指向【添加】,单击【添加现有项】命令,弹出“添加现有项对话框,如图 7.8所示,到相应的文件路径下找到所要添加的文件,此例是在webPictures文件夹中,选中“NEXT.jpg和“NEXTd.jpg

15、文件,单击【翻开】。这样就在文件夹images中的添加了两个图像文件。图 7.8添加现有项对话框3. 在UseImageButton.aspx的“设计视图中,从“工具箱中的“web窗体工具箱中拖一个“ImageButton控件到“设计视图中,并适当的调整位置。将ImageButton控件ImageUrl属性设置为“NEXT.jpg。4. 在UseImageButton.aspx的“设计if(ImageButton1.ImageUrl="images/NEXT.jpg")ImageButton1.ImageUrl="images/NEXTd.jpg"els

16、eImageButton1.ImageUrl="images/NEXT.jpg"试一试5. 在Page_Load事件处理程序中,添加如下代码:Response.Write("<center><b>改变ImageButton控件的外观</b></center>");6. 在“解决方案资源管理器窗口中的文件UseImageButton.aspx上右击,弹出快捷菜单,单击【生成并浏览】命令,可以直接在VS.NET中浏览程序运行结果,如图 7.9所示。单击【Next】按钮,按钮被按下,如图 7.10所示,再次单击此

17、按钮,按钮弹起。注意:之所以能到达这个效果,其实是因为使用了两个不同的按钮图片。图 7.9 UseImageButton.aspx运行结果1图 7.10 UseImageButton.aspx运行结果27.2.5 TextBox控件TextBox 控件是让用户输入文本的输入控件。默认情况下,TextMode 属性设置为 SingleLine,它创立只包含一行的文本框。还可将此属性设置为 MultiLine 或 Password。MultiLine 创立包含多个行的文本框。Password 创立可以屏蔽用户输入的值的单行文本框。文本框的显示宽度由其 Columns 属性确定。如果文本框是多行文本

18、框,那么显示高度由 Rows 属性确定。使用 Text 属性确定 TextBox 控件的内容。通过设置 MaxLength 属性,可以限制可输入到此控件中的字符数。将 Wrap 属性设置为 true 来指定当到达文本框的结尾时,单元格内容应自动在下一行继续。下面通过一个实例介绍如何使用TextBox控件,该例的功能是检查登录某一个SQLServer数据库效劳器的用户的合法身份。用户提供要登录的某一个SQLServer数据库效劳器的名称,用户名和密码,单击“连接数据库按钮,然后显示提示信息。具体实现步骤如下:1. 仍在工程WebCourse中,在chapter7文件夹中,添加一个Web窗体:us

19、eTextBox.aspx。2. 在UseTextBox.aspx的“设计视图中,翻开【表】菜单【插入】【表】,翻开“插入表对话框,将“行设置为:4,“列设置为:2,单击【确定】。那么插入一个4行2列的表,并适当的调整位置。3. 在UseTextBox.aspx的“设计视图中,从“工具箱中的“web窗体工具箱中分别拖三个“TextBox控件和一个“Button控件到表的第二列的四个单元格中,并在表的第一列的前三个单元格中输入提示文本信息,在表格的下面放置一个“Label控件,并调整大小及位置。设置“TextBox3的TextMode属性的值为“Password,设置“Button1的Text属

20、性的值为“连接数据库,如图 7.11所示。图 7.11 UseTextBox.aspx的“设计视图4. 在UseTextBox.aspx的“设计Label1.Text="您所输入的信息是:<hr align=center>数据库效劳器:"+TextBox1.Text+"<br>用户名:"+TextBox2.Text+"<br>密码:"+TextBox3.Text;5. 在Page_Load事件处理程序中,添加如下代码:Label1.Text=""Response.Write(&q

21、uot;<center><b>使用TextBox控件</b></center>");6. 在“解决方案资源管理器窗口中的文件UseTextBox.aspx上右击,弹出快捷菜单,单击【生成并浏览】命令,可以直接在VS.NET中浏览程序运行结果,如图 7.12所示。用户输入要连接的数据库效劳器名称,以及相应的用户名和密码,单击【连接数据库】按钮,显示如图 7.13所示。注意:因为密码框的Text属性设为“Password,此时用户的输入值以“*显示。图 7.12 UseTextBox.aspx运行结果图 7.13连接数据库成功试一试:同学们

22、可以通过设置“数据库效劳器名称文本框和“用户名文本框的Text属性,来设定默认值。7.2.6 DropDownList控件DropDownList控件是创立单一选择下拉列表控件。通过设置 BorderColor、BorderStyle 和 BorderWidth 属性可以控制 DropDownList 控件的外观。假设要指定在 DropDownList 控件中显示的项,请针对每个项在 DropDownList 控件的开始和结束标记之间放置一个 ListItem 元素。使用 DataTextField 和 DataValueField 属性分别指定每个列表项的 Text 和 Value 属性。另

23、外,此控件有一个常用的重要属性AutoPostBack属性,在Web窗体中,我们通常通过单击按钮Button、LinkButton、ImageButton等来驱动Click事件程序以处理Web窗体的数据,但有时候我们希望能够更及时的相应用户的输入或选择的变化,例如:当用户在一个下拉列表中选取了一项后,不用单击提交按钮就可以显示该选取项,这需要使用控件的AutoPostBack属性,以及与之紧密相关的网页的IsPostBack属性。下面通过一个简单的例子说明如何使用DropDownList 控件。具体实现步骤如下:1. 仍在工程WebCourse中,在文件夹chapter7中,添加一个Web窗体

24、:useDropDownList.aspx。2. 在useDropDownList.aspx的“设计视图中,翻开【表】菜单【插入】【表】,翻开“插入表对话框,将“行设置为:3,“列设置为:2,单击【确定】。那么插入一个3行2列的表,并适当的调整位置。将表的第一行中的两个单元格合并,方法是:选中这两个单元格右击,弹出快捷菜单,单击【合并单元格】命令,用同样的方法将第三行中的两个单元格合并3. 在表的前两个单元格中输入提示文本信息。从“工具箱中的“web窗体工具箱中分别拖一个“DropDownList控件和一个“Label控件到表的另外两个单元格中,并适当地调整位置。选中“DropDownList

25、控件右击,弹出快捷菜单,单击【属性】命令,如图 7.14所示,设置DropDownList 控件的AutoPostBack属性的值为“true,然后,设置Items属性,即单击,翻开ListItem集合编辑器,如图 7.15所示,添加三个列表项,单击【确定】,设计界面如图 7.16所示。图 7.14设置DroptDownList控件的属性图 7.15 ListItem集合编辑器图 7.16 useDropDownList.aspx的“设计视图4.if(!IsPostBack)Label1.Text="您没有选择学校!"elseLabel1.Text="您所选择的学

26、校是:5. 在“解决方案资源管理器窗口中的文件UseDropDownList.aspx上右击,弹出快捷菜单,单击【生成并浏览】命令,可以直接在VS.NET中浏览程序运行结果,如图 7.17所示。选择下拉列表中的某一项后,所选择的信息会马上显示在网页上,如图 7.18所示。图 7.17 UseDropDownList.aspx运行结果1图 7.18 UseDropDownList.aspx运行结果2在Page_Load事件程序中使用的Page的IsPostBack属性。该属性获取一个值,该值指示该页是为响应客户端回发而加载,还是被首次加载访问。如果是为响应客户端回发而加载该页,那么为 true;

27、否那么为 false。如果在DropDownList控件中增加了AutoPostBack属性后,只要用户改变了DropDownList的选项,都会促使网页被重新加载即执行Page_Load事件,那么在Page_Load事件程序中就必须有因为选项改变所要执行的程序,即上面的程序代码,代码将网页第一次加载和响应客户端回发而加载两种情况进行了分别处理,这是通过使用Page的IsPostBack属性来实现的。试一试:如果将DropDownList控件AutoPostBack设为false,会是什么效果。注意:除了DropDownList之外,在本章介绍的TextBox 文本框控件; ListBox列表

28、框控件;CheckBox复选框控件和CheckBoxList复选框列表控件;RadioButton单项选择按钮控件和RadioButtonList单项选择按钮列表控件中都可以使用AutoPostBack属性。当用户改变控件的输入或选项时,会促使网页被重新加载。7.2.7 ListBox控件ListBox 控件是创立允许进行单项或多项选择的列表控件。使用 Rows 属性指定控件的高度。假设要启用多项选择,请将 SelectionMode 属性设置为 Multiple。假设要指定要在 ListBox 控件中显示的项,请针对每个项在 ListBox 控件的开始和结束标记之间放置一个 ListItem

29、 元素。使用 DataTextField 和 DataValueField 属性分别指定控件中每个列表项的 Text 和 Value 属性。如果 SelectionMode 属性设置为 Multiple,那么通过循环访问 Items 集合并测试集合中每一项的 Selected 属性来确定 ListBox 控件中的选定项。如果 SelectionMode 属性设置为 Single,那么可以使用 SelectedIndex 属性确定选定项的索引。然后,可以使用此索引从 Items 集合中检索该项。下面通过一个实例介绍如何使用ListBox控件,该例的功能是使用左边的ListBox 控件向用户显示预

30、定义选项列表,单击【>>】按钮,将用户选择的项添加到右边的ListBox控件中,单击【<<】按钮,将右边的ListBox控件中用户选择的项添加到左边的ListBox控件中。此例中ListBox控件SelectionMode 属性设置为默认的Single,这样用户一次只可以选择一项。具体实现步骤如下:1. 仍工程WebCourse中,在文件夹chapter7中,添加一个Web窗体:useListBox.aspx。2. 在UseListBox.aspx的“设计视图中,翻开【表】菜单【插入】【表】,翻开“插入表对话框,将“行设置为:3,“列设置为:3,“边框大小设置为:0,单

31、击【确定】。那么插入一个3行3列的表,并适当的调整位置。3. 在UseListBox.aspx的“设计视图中,从“工具箱中的“web窗体工具箱中分别拖两个“控件和两个“Button控件到表中,并输入相应的提示文本信息。设置两个“Button控件的Text属性分别为“>>和“<<。设置左边的ListBox1控件的 Items属性,即在该控件的ListItem集合编辑器中,添加七个列表项,如图 7.19所示,单击【确定】,设计界面如图 7.20所示。图 7.19 ListItem集合编辑器图 7.20 UseListBox.aspx的“设计视图4. 在UseListBox.

32、aspx的“设计private void Button1_Click(object sender, System.EventArgs e)/列表项不空if/保证列表框中有被选中的项if(ListBox1.SelectedIndex>-1) ListBox2.ClearSelection();elseResponse.Write("<script language='javascript'> alert('你没有选中左边的列表项!')</script>");private void Button2_Click(ob

33、ject sender, System.EventArgs e)ifif(ListBox2.SelectedIndex>-1)ListBox1.Items.Add(ListBox2.SelectedItem);ListBox1.ClearSelection();elseResponse.Write("<script language='javascript'> alert('你没有选中右边的列表项!')</script>");5. 生成并浏览UseListBox.aspx,单击【>>】或【<&l

34、t;】按钮,可以在两个列表框之间互换数据,运行结果如图 7.21所示。图 7.21 UseListBox.aspx运行结果7.2.8 CheckBox控件 和CheckBoxList控件CheckBox 控件在“Web 窗体页上创立复选框,该复选框允许用户在 true 或 false 状态之间切换。通过设置 Text 属性可以指定要在控件中显示的标题。标题可显示在复选框的右侧或左侧。设置 TextAlign 属性以指定标题显示在哪一侧。假设要确定是否已选中 CheckBox 控件,请测试 Checked 属性。当 CheckBox 控件的状态在向效劳器的各次发送过程间更改时,将引发 Check

35、edChanged 事件。可以为 CheckedChanged 事件提供事件处理程序,以便当 CheckBox 控件的状态在向效劳器的各次发送过程间更改时执行特定的任务。默认情况下,CheckBox 控件在被单击时不会自动向效劳器发送窗体。假设要启用自动发送,请将 AutoPostBack 属性设置为 true。当创立多个 CheckBox 控件时,还可以使用 CheckBoxList 控件。CheckBoxList 控件的RepeatDirection属性用于设置控件是垂直Vertical显示还是水平Horizontal显示,RepeatColumns属性用于设置要在 CheckBoxLis

36、t 控件中显示的列数。 下面通过一个实例介绍如何使用CheckBox 控件和CheckBoxList 控件。具体实现步骤如下:1. 仍工程WebCourse中,在文件夹chapter7中,添加一个Web窗体:useCheckBox.aspx。2. 在UseCheckBox.aspx的“设计视图中,翻开【表】菜单【插入】【表】,翻开“插入表对话框,将“行设置为:3,“列设置为:2,“边框大小设置为:0,单击【确定】。那么插入一个3行2列的表,并适当的调整位置。3. 在UseCheckBox.aspx的“设计视图中,从“工具箱中的“web窗体工具箱中分别拖三个“CheckBox控件和一个“Chec

37、kBoxList控件到表中,并输入相应的提示文本信息。在表的下面放置一个“Button控件和一个“Label控件。设置三个“CheckBox控件、一个“Button控件和一个“Label控件的Text属性分别为“东部,“中部,“西部,“提交和“。设置“CheckBoxList控件的 Items属性,即在该控件的ListItem集合编辑器中,添加十二个列表项,如图 7.22所示,单击【确定】,并设置“CheckBoxList控件的RepeatDirection属性为“Horizontal,RepeatColumns属性为“4。设计界面如图 7.23所示。图 7.22 ListItem集合编辑器图

38、 7.23 UseCheckBox.aspx的“设计视图4. 在UseCheckBox.aspx的“设计string ss="您关注的地区是:"if(CheckBox1.Checked=true)ss+=CheckBox1.Text;if(CheckBox2.Checked=true)ss+=" "+CheckBox2.Text;if(CheckBox3.Checked=true)ss+=" "+CheckBox3.Text;ss+="。<br>您关注的方向是:"for(intif(CheckBoxLi

39、st1.Itemsi.Selected=true)ss+=CheckBoxList1.Itemsi.Value+" "Label1.Text=ss;5. 生成并浏览UseCheckBox.aspx,运行结果如图 7.24所示。用户选择相应的项后,单击【提交】按钮,显示相应的信息,如图 7.25所示。图 7.24 UseCheckBox.aspx运行结果1图 7.25 UseCheckBox.aspx运行结果27.2.9 RadioButton控件和RadioButtonList控件RadioButton 控件在“Web 窗体页上创立一个单项选择按钮。通过设置 Text 属性

40、指定要在控件中显示的文本。该文本可显示在单项选择按钮的左侧或右侧。设置 TextAlign 属性来控制该文本显示在哪一侧。如果为每一个 RadioButton 控件指定了相同的 GroupName,那么可以将多个单项选择按钮分为一组。将单项选择按钮分为一组将只允许从该组中进行互相排斥的选择。假设要确定 RadioButton 控件是否已选中,请测试 Checked 属性。当创立多个单项选择按钮时,还可以使用 RadioButtonList 控件。下面通过一个实例介绍如何使用RadioButton 控件和RadioButtonList 控件。具体实现步骤如下:1. 仍工程WebCourse中,在

41、文件夹chapter7中,添加一个Web窗体:useRadioButton.aspx。2. 在UseRadioButton.aspx的“设计视图中,翻开【表】菜单【插入】【表】,翻开“插入表对话框,将“行设置为:3,“列设置为:2,“边框大小设置为:0,单击【确定】。那么插入一个3行2列的表,并适当调整位置。3. 在UseRadioButton.aspx的“设计视图中,从“工具箱中的“web窗体工具箱中分别拖两个“RadioButton控件和一个“RadioButton List控件到表中,并输入相应的提示文本信息。在表的下面放置一个“Button控件和一个“Label控件。设置两个“Radi

42、oButton控件的Text属性分别为“男,“女,“GroupName都为:RadioGroup1,Radio1的Check属性设为“true。“Button控件和“Label控件的Text属性分别为“ 提 交 和“。设置“RadioButton List控件的 Items属性,即在该控件的ListItem集合编辑器中,添加五个列表项,如图 7.26所示,单击【确定】,并设置“RadioButton List控件的RepeatDirection属性为“Horizontal,RepeatColumns属性为“3。设计界面如图 7.27所示图 7.26 ListItem集合编辑器图 7.27 Us

43、eRadioButton.aspx的“设计视图4. 在UseRadioButton.aspx的“设计string ss="性别:"if(RadioButton1.Checked=true)ss+=RadioButton1.Text;if(RadioButton2.Checked=true)ss+=RadioButton2.Text;ss+="; 学历:"if(RadioButtonList1.SelectedIndex>-1) Label1.Text=ss;5. 生成并浏览Ex05_04_05aspx,运行结果如图 7.28所示。用户选择相应的项后

44、,单击“提交按钮,显示相应的信息,如图 7.29所示。图 7.28 UseRadioButton.aspx运行结果1图 7.29 UseRadioButton.aspx运行结果27.2.10 Panel 控件Panel 控件是其他控件的容器。如果打算以编程方式生成多个控件或者打算隐藏/显示一组控件,此控件尤其有用。下面通过一个实例介绍如何使用Panel 控件,该例模仿Word中的查找对话框。具体实现步骤如下:1. 仍在工程webCourse中,在文件夹chapter7中,添加一个Web窗体:usePanel.aspx。2. 按图 7.30所示,设计用户界面,并按表 7.1所示,设置控件的属性。

45、图 7.30 设计usePanel.aspx的用户界面表 7.1设置usePanel.aspx的控件属性控件ID设置控件的属性Panel1BackImageUrl="images/bk.JPG" BorderStyle="Double"Panel2BackImageUrl="images/bk.JPG" BorderStyle="Double"Visible="False"Tabel1align="center" border="0"Tabel2align

46、="center" border="0"TextBox1Button1Text="高级"Button2Text="查找下一处"Button3Text=" 取消 "DropDownList1<asp:ListItem Value="全部">全部</asp:ListItem><asp:ListItem Value="向上">向上</asp:ListItem><asp:ListItem Value="

47、;向下">向下</asp:ListItem>CheckBox1Text="区分大小写"CheckBox2Text="全字匹配"CheckBox3Text="使用通配符"CheckBox4Text="同音"3. 在usePanel.aspx的“设计视图中,双击【高级】这个Button控件,那么在usePanel.aspx.cs自动添加了按钮Button1的Click事件处理程序,在这个Click事件处理程序中添加程序代码如下:if(Panel2.Visible=false)Panel2.V

48、isible=true;Button1.Text="常规"elsePanel2.Visible=false;Button1.Text="高级"4. 生成并浏览usePanel.aspx,如图 7.31所示。单击【高级】按钮后,会显示下面的一组控件,同时按钮的显示变为【常规】,如图 7.32所示。单击【常规】按钮后,又会隐藏下面的一组控件。图 7.31 usePanel.aspx的运行结果1图 7.32 usePanel.aspx的运行结果27.3 数据验证控件本节主要介绍数据验证控件的使用方法。首先对数据验证机制作了一个简单的介绍,然后详细介绍了六大类数

49、据验证控件的使用方法。7.3.1 数据验证机制介绍数据验证效劳器控件可以提供易用但功能强大的方法检查输入窗体中的错误,并在必要时向用户显示消息。验证控件像其他效劳器控件一样添加到 Web 窗体页。有不同的控件用于特定的验证类型,如范围检查或模式匹配,以及确保用户不跳过输入字段的 RequiredFieldValidator等。可以将多个验证控件附加到一个输入控件。例如,可以既指定需要输入,又指定输入必须包含特定范围的值。表 7.2列出了所有的验证控件。接下来将分别详细介绍这些控件的使用方法。表 7.2验证控件的类型控件名称说 明 RequiredFieldValidator确保用户不跳过输入。

50、 CompareValidator使用比拟运算符小于、等于、大于等将用户的输入与另一控件的常数值或属性值进行比拟。 RangeValidator检查用户的输入是否在指定的上下边界之间。 可以检查数字、字母或日期对内的范围。可以将边界表示为常数。 RegularExpressionValidator检查输入是否与正那么表达式定义的模式匹配。该验证类型允许检查可预知的字符序列,如电子邮件地址、 号码、邮政编码等中的字符序列。 CustomValidator使用您自己编写的验证逻辑检查用户的输入。该验证类型允许检查运行时导出的值。 ValidationSummary以摘要的形式显示页上所有验证程序的

51、验证错误。在处理用户的输入时如提交窗体时,Web 窗体页框架将用户的输入传递给关联的验证控件。验证控件测试用户的输入,并设置属性以指示输入是否通过了验证测试。处理完所有的验证控件后,将设置页上的 IsValid 属性。如果有任何控件显示验证检查失败,那么整页设置为无效。 如果验证控件有错误,错误信息可由该验证控件显示在页中,或者显示在页上其他地方的 ValidationSummary 控件中。当页的 IsValid 属性为 false 时,显示 ValidationSummary 控件。它轮询页上的每个验证控件,并聚合每个控件公开的文本消息。表 7.3列出了可以验证的Web 效劳器控件。表 7

52、.3 可以验证的Web 效劳器控件控件验证属性TextBoxTextListBoxSelectedItem.ValueDropDownListSelectedItem.ValueRadioButtonListSelectedItem.Value如果用户的浏览器是IE4.0或更新的版本,即支持DHTML,那么验证控件可以使用客户端的脚本进行验证。由于控件能够立即响应不需要一个到效劳器的往返,网页的执行效率会提高。在大局部情况下,不需要因为使用客户端验证而对网页或验证控件做任何变动。控件会自动检测浏览器是否支持DHTML。已经在客户端执行验证后,网页框架仍然会在效劳器中再次进行验证,因此,可以在效

53、劳器端的事件处理程序中测试有效性。此外,在效劳器中再次进行验证可以防止用户通过停用或变更客户端脚本略过客户端验证。7.3.2 RequiredFieldValidator控件如果要求用户一定要在某个输入控件中输入数据而不可以保持空白,那么使用 RequiredFieldValidator 控件,通过设置 ControlToValidate 属性指定要验证的输入控件。RequiredFieldValidator 控件经常和其它验证控件搭配使用。因为除了RequiredFieldValidator 控件,其他所有的验证控件都会将空白视为正确的,即会通过验证。也就是说,如果使用RangeValida

54、tor控件要求某个TextBox控件必须输入在指定范围内的数据,那么用户输入了指定范围内的数据或者不输入任何数据,都可以通过验证。如果要求输入数据不可以为空,那么必须另外再使用一个RequiredFieldValidator 控件。下面通过一个实例介绍如何使用RequiredFieldValidator 控件,该例的功能是要求用户必须在文本框中输入信息。验证结果随后显示在页面上。具体实现步骤如下:1. 仍在工程webCourse中,在文件夹chapter7中,添加一个Web窗体:vRequiredField.aspx。2. 按图 7.33所示,设计用户界面,并按表 7.4所示,设置控件的属性。

55、图 7.33设计vRequiredField.aspx的用户界面表 7.4设置vRequiredField.aspx的控件属性控件ID设置控件的属性TextBox1RequiredFieldValidator1ControlToValidate="TextBox1" ErrorMessage="文本框不能为空"Button1Text="提交"Label1Text=" "3. 在vRequiredField.aspx的“设计视图中,双击Button控件,那么在vRequiredField.aspx.cs自动添加了按钮

56、的Click事件处理程序,在这个Click事件处理程序中添加程序代码如下:if(IsValid)Label1.Text="用户名:"+TextBox1.Text;4. 生成并浏览vRequiredField.aspx。如果用户没有在文本框中输入信息,单击【提交】按钮后,会出现红色标识的提示信息。7.3.3 CompareValidator控件CompareValidator 控件使您可以将用户输入到一个输入控件如 TextBox 控件中的值同输入到另一个输入控件中的值相比拟,或将该值与某个常数值相比拟。还可以使用 CompareValidator 控件确定输入到输入控件中的

57、值是否可以转换为 Type 属性所指定的数据类型。通过设置 ControlToValidate 属性指定要验证的输入控件。如果希望将特定的输入控件与另一个输入控件相比拟,请使用要比拟的控件的名称设置 ControlToCompare 属性。可以将一个输入控件的值同某个常数值相比拟,而不是比拟两个输入控件的值。通过设置 ValueToCompare 属性指定要比拟的常数值。Operator 属性允许您指定要执行的比拟类型,如大于、等于等。如果将 Operator 属性设置为 ValidationCompareOperator.DataTypeCheck,CompareValidator 控件将同时忽略 ControlToCompare 属性和 ValueToCompare 属性,而仅指示输入到输入控件中的值是否可以转换为 Type 属性所指定的数据类型。如果输入控件为空,那么不调用任何验证函数并且验证成功。可以使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论