1.简单控件:label控件,hyperlink控件,image控件
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:HyperLink ID="HyperLink1" runat="server" ImageUrl="http://www.shangducms.com/images/cms.jpg" NavigateUrl="http://www.shangducms.com"> HyperLink
</asp:HyperLink>
<asp:Image ID="Image1" runat="server" AlternateText="图片连接失效" ImageUrl="http://www.shangducms.com/images/cms.jpg" /> 。另外还有ImageAlign、ToolTip和GenerateEmptyAlternateText属性。
2.文本框控件。
属性:
q AutoPostBack:在文本修改以后,是否自动重传。默认为false。
q Columns:文本框的宽度。
q EnableViewState:控件是否自动保存其状态以用于往返过程。 默认为true。
q MaxLength:用户输入的最大字符数。
q ReadOnly:是否为只读。
q Rows:作为多行文本框时所显式的行数。
q TextMode:文本框的模式,设置单行,多行或者密码。
q Wrap:文本框是否换行。
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<br />
<asp:TextBox ID="TextBox2" runat="server" Height="101px" TextMode="MultiLine"
Width="325px"></asp:TextBox>
<br />
<br />
<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox>
另外。当AutoPostBack为true,则在TextChanged事件中发生回传,回传方式不同于winform,仅当用户将文本框中的焦点移出导致TextBox就会失去焦点时,才会发生重传。
3.按钮控件:(Button,LinkButton,ImageButton)
按钮控件常用属性:
q Causes Validation:按钮是否导致激发验证检查。
q CommandArgument:与此按钮管理的命令参数。
q CommandName:与此按钮关联的命令。
q ValidationGroup:使用该属性可以指定单击按钮时调用页面上的哪些验证程序。如果未建立任何验证组,则会调用页面上的所有验证程序。
以下为三种按钮:
<asp:Button ID="Button1" runat="server" Text="Button" /> //普通的按钮
<br />
<asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton> //Link类型的按钮
<br />
<asp:ImageButton ID="ImageButton1" runat="server" /> //图像类型的按钮
事件中主要为;Click单击和Command命令事件。click时间不可以传递参数,相对简单。Command事件可以传递参数,负责传递参数的是按钮控件的CommandArgument和CommandName属性。
将CommandArgument和CommandName属性分别设置为Hello!和Show,单击 创建一个Command事件并在事件中编写相应代码,示例代码如下所示。
protected void Button1_Command(object sender, CommandEventArgs e)
{
if (e.CommandName == "Show") //如果CommandNmae属性的值为Show,则运行下面代码
{
Label1.Text = e.CommandArgument.ToString();//CommandArgument属性的值赋值给Label1
}
}
注意:当按钮同时包含Click和Command事件时,通常情况下会执行Command事件。
4.单选控件和单选组控件(RadioButton和RadioButtonList)
在进行投票等应用开发并且只能在选项中选择单项时,单选控件和单选组控件都是最佳的选择。
属性:
q Checked:控件是否被选中。
q GroupName:单选控件所处的组名。
q TextAlign:文本标签相对于控件的对齐方式。
<asp:RadioButton ID="RadioButton1" runat="server" GroupName="choose" Text="Choose1" />
与TextBox文本框控件相同的是,单选控件不会自动进行页面回传,必须将AutoPostBack属性设置为true时才能在焦点丢失时触发相应的CheckedChanged事件。
单选组控件(RadioButtonList):与单选控件不同的是,单选组控件没有GroupName属性,但是却能够列出多个单选项目。另外,单选组控件所生成的代码也比单选控件实现的相对较少。
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem>Choose1</asp:ListItem>
<asp:ListItem>Choose2</asp:ListItem>
<asp:ListItem>Choose3</asp:ListItem>
</asp:RadioButtonList>
另外,其有样式和布局属性:
q DataMember:在数据集用做数据源时做数据绑定。
q DataSource:向列表填入项时所使用的数据源。
q DataTextFiled:提供项文本的数据源中的字段。
q DataTextFormat:应用于文本字段的格式。
q DataValueFiled:数据源中提供项值的字段。
q Items:列表中项的集合。
q RepeatColumn:用于布局项的列数。
q RepeatDirection:项的布局方向。
q RepeatLayout:是否在某个表或者流中重复。
5.复选框控件和复选组控件(CheckBox和CheckBoxList)
复选框控件和复选组控件同单选框控件和单选组控件一样,都是通过Checked属性来判断是否被选择。复选框控件没有GroupName属性
<asp:CheckBox ID="CheckBox1" runat="server" Text="Check1" AutoPostBack="true" />
<asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="True"
onselectedindexchanged="CheckBoxList1_SelectedIndexChanged">
<asp:ListItem Value="Choose1">Choose1</asp:ListItem>
<asp:ListItem Value="Choose2">Choose2</asp:ListItem>
<asp:ListItem Value="Choose3">Choose3</asp:ListItem>
</asp:CheckBoxList>
复选组控件与单选组控件不同的是,不能够直接获取复选组控件某个选中项目的值,因为复选组控件返回的是第一个选择项的返回值,只能够通过Item集合来获取选择某个或多个选中的项目值。
6.列表控件(DropDownList,ListBox和BulletedList)
DropDownList列表控件:列表控件能在一个控件中为用户提供多个选项,同时又能够避免用户输入错误的选项。
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
同时DropDownList列表控件也可以绑定数据源控件。DropDownList列表控件最常用的事件是SelectedIndexChanged。
ListBox控件:可以指定用户是否允许多项选择。设置SelectionMode属性为Single时,表明只允许用户从列表框中选择一个项目,而当SelectionMode属性的值为Multiple时,用户可以按住Ctrl键或者使用Shift组合键从列表中选择多个数据项。当创建一个ListBox列表控件后,开发人员能够在控件中添加所需的项目,添加完成后示例代码如下所示。
<asp:ListBox ID="ListBox1" runat="server" Width="137px" AutoPostBack="True">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:ListBox>
从结构上看,ListBox列表控件的HTML样式代码和DropDownList控件十分相似。同样,SelectedIndexChanged也是ListBox列表控件中最常用的事件。
BulletedList控件:BulletedList可以通过设置BulletStyle属性来编辑列表前的符号样式,常用的BulletStyle项目符号编号样式如下所示。
q Circle:项目符号设置为○。
q CustomImage:项目符号为自定义图片。
q Disc:项目符号设置为●。
q LowerAlpha:项目符号为小写字母格式,如a、b、c等。
q LowerRoman:项目符号为罗马数字格式,如i、ii等。
q NotSet:表示不设置,此时将以Disc样式为默认样式。
q Numbered:项目符号为1、2、3、4等。
q Square:项目符号为黑方块■。
q UpperAlpha:项目符号为大写字母格式,如A、B、C等。
UpperRoman:项目符号为大写罗马数字格式如Ⅰ、Ⅱ、Ⅲ等。
7.面板控件(Panel)
面板控件就好像是一些控件的容器,可以将一些控件包含在面板控件内,然后对面板进行操作来设置在面板控件内的所有控件是显示还是隐藏,从而达到设计者的特殊目的。面板控件的常用功能就是显示或隐藏一组控件。
<asp:Panel ID="Panel1" runat="server" Visible="False">
<asp:Label ID="Label1" runat="server" Text="Name:" style="font-size: xx-large"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
This is a Panel!
</asp:Panel>
Panel控件还包含一个GroupText属性,当Panel控件的GroupText属性被设置时,Panel将会被创建一个带标题的分组框,能够进行Panel控件的样式呈现,通过编写GroupText属性能够更加清晰的让用户了解Panel控件中服务器控件的类别。
8.占位控件PlaceHolder
其也是控件的容器,但是在HTML页面呈现中本身并不产生HTML,创建一个PlaceHolder控件代码如下所示。
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
通过编程添加控件:
在CS页面中,允许用户动态的在PlaceHolder上创建控件,CS页面代码如下所示。
protected void Page_Load(object sender, EventArgs e)
{
TextBox text = new TextBox(); //创建一个TextBox对象
text.Text = "NEW";
this.PlaceHolder1.Controls.Add(text); //为占位控件动态增加一个控件
}
开发人员同样可以在PlaceHolder控件中拖动相应的服务器控件进行控件呈现和分组。
9.日历控件(Calendar)
ASP.NET中提供了强大的日历控件来简化日历控件的开发。日历控件能够实现日历的翻页、日历的选取以及数据的绑定,开发人员能够在博客、OA等应用的开发中使用日历控件从而减少日历应用的开发。显示时间,日期选择,和数据库连接。
日历控件通常用于显示月历,日历控件允许用户选择日期和移动到下一页或上一页。
常用样式属性:
q DayHeaderStype:月历中显示一周中每一天的名称和部分的样式。
q DayStyle:所显示的月份中各天的样式。
q NextPrevStyle:标题栏左右两端的月导航所在部分的样式。
q OtherMonthDayStyle:上一个月和下一个月的样式。
q SelectedDayStyle:选定日期的样式。
q SelectorStyle:位于月历控件左侧,包含用于选择一周或整个月的连接的列样式。
q ShowDayHeader:显示或隐藏一周中的每一天的部分。
q ShowGridLines:显示或隐藏一个月中的每一天之间的网格线。
q ShowNextPrevMonth:显示或隐藏到下一个月或上一个月的导航控件。
q ShowTitle:显示或隐藏标题部分。
q TitleStyle:位于月历顶部,包含月份名称和月导航连接的标题栏样式。
q TodayDayStyle:当前日期的样式。
q WeekendDayStyle:周末日期的样式。
常用事件:
q DayRender:当日期被显示时触发该事件。
q SelectionChanged:当用户选择日期时触发该事件。
q VisibleMonthChanged:当所显示的月份被更改时触发该事件。
10、广告控件(AdRotator)
广告控件可以从固定的数据源中读取(如XML或数据源控件),并从中自动读取出广告信息。当页面每刷新一次时,广告显示的内容也同样会被刷新。广告控件必须放置在Form或Panel控件,以及模板内。广告控件需要包含图像的地址的XML文件。广告控件最常用的属性就是AdvertisementFile,使用它来配置相应的XML文件,所以必须首先按照标准格式创建一个XML文件。
编写广告的xml文件格式为:
<?xml version="1.0" encoding="utf-8" ?>
<Advertisements>
[<Ad>
<ImageUrl></ImageUrl>
<NavigateUrl></NavigateUrl>
[<OptionalImageUrl></OptionalImageUrl>]*
[<OptionalNavigateUrl></OptionalNavigateUrl>]*
<AlternateText></AlternateText>
<Keyword></Keyword>
<Impression></Impression>
</Ad>]*
</Advertisements>
上述代码实现了一个标准的广告控件的XML数据源格式,其中各标签意义如下所示:
q ImageUrl:指定一个图片文件的相对路径或绝对路径,当没有ImageKey元素与OptionalImageUrl匹配时则显示该图片。
q NavigateUrl:当用户单击广告时单没有NaivigateUrlKey元素与OptionalNavigateUrl元素匹配时,会将用户发送到该页面。
q OptionalImageUrl:指定一个图片文件的相对路径或绝对路径,对于ImageKey元素与OptionalImageUrl匹配时则显示该图片。
q OptionalNavigateUrl:当用户单击广告时单有NaivigateUrlKey元素与OptionalNavigateUrl元素匹配时,会将用户发送到该页面。
q AlternateText:该元素用来替代IMG中的ALT元素。
q KeyWord:KeyWord用来指定广告的类别。
q Impression:该元素是一个数值,指示轮换时间表中该广告相对于文件中的其他广告的权重。
如下例子:
<?xml version="1.0" encoding="utf-8" ?>
<Advertisements>
<Ad>
<ImageUrl>http://www.shangducms.com/images/cms.jpg</ImageUrl>
<NavigateUrl>http://www.shangducms.com</NavigateUrl>
<AlternateText>我的网站</AlternateText>
<Keyword>software</Keyword>
<Impression>100</Impression>
</Ad>
<Ad>
<ImageUrl>http://www.shangducms.com/images/hello.jpg</ImageUrl>
<NavigateUrl>http://www.shangducms.com</NavigateUrl>
<AlternateText>我的网站</AlternateText>
<Keyword>software</Keyword>
<Impression>100</Impression>
</Ad>
</Advertisements>
11、上传控件
文件上传控件可视化设置属性较少,大部分都是通过代码控制完成的。当用户选择了一个文件并提交页面后,该文件作为请求的一部分上传,文件将被完整的缓存在服务器内存中。当文件完成上传,页面才开始运行,在代码运行的过程中,可以检查文件的特征,然后保存该文件。同时,上传控件在选择文件后,并不会立即执行操作,需要其他的控件来完成操作,例如按钮控件(Button)。实现文件上传的HTML核心代码如下所示。
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="选择好了,开始上传" />
</div>
</form>
</body>
上述代码通过一个Button控件来操作文件上传控件,当用户单击按钮控件后就能够将上传控件中选中的控件上传到服务器空间中,
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile) //如果存在文件
{
string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName);//获取文件扩展名
if (fileExtension != ".jpg") //如果扩展名不等于jpg时
{
Label1.Text = "文件上传类型不正确,请上传jpg格式"; //提示用户重新上传
}
else
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("upload/beta.jpg")); //文件保存
Label1.Text = "文件上传成功"; //提示用户成功
}
}
}
如果需要更改默认上传文件大小的值,通常可以直接修改存放在C:\WINDOWS\Microsoft.NET\FrameWork\V2.0.50727\CONFIG的ASP.NET 2.0配置文件,通过修改文件中的maxRequestLength标签的值,或者可以通过web.config来覆盖配置文件。
12、视图控件(multiview和view控件)
视图控件很像在WinForm开发中的TabControl控件,在网页开发中,可以使用MultiView控件作为一个或多个View控件的容器,
在一个MultiView控件中,可以放置多个View控件(选项卡),当用户点击到关心的选项卡时,可以显示相应的内容,很像Visual Studio 2008中的设计、视图、拆分等类型的功能。
无论是MultiView还是View,都不会在HTML页面中呈现任何标记。而MultiView控件和View没有像其他控件那样多的属性,惟一需要指定的就是ActiveViewIndex属性,视图控件HTML代码如下所示。
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
<asp:View ID="View1" runat="server">
abc<br />
<asp:Button ID="Button1" runat="server" CommandArgument="View2"
CommandName="SwitchViewByID" Text="下一个" />
</asp:View>
<asp:View ID="View2" runat="server">
123<br />
<asp:Button ID="Button2" runat="server" CommandArgument="View1"
CommandName="SwitchViewByID" Text="上一个" />
</asp:View>
</asp:MultiView>
上述代码中,使用了Button来对视图控件进行选择,通过单击按钮,来选择替换到【下一个】或者是【上一个】按钮,
13、表控件(table)
表中的行可以通过TableRow创建,而表中的列通过TableCell来实现
<asp:Table ID="Table1" runat="server" Height="121px" Width="177px">
<asp:TableRow>
<asp:TableCell>1.1</asp:TableCell>
<asp:TableCell>1.2</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>2.1</asp:TableCell>
<asp:TableCell>2.2</asp:TableCell>
</asp:TableRow>
</asp:Table>
上述代码创建了一个两行两列的表,
父Table控件支持一些控制整个表的外观的属性,例如字体、背景颜色等。TableRow控件和TableCell控件也支持这些属性,同样可以用来指定个别的行或单元格的外观。
可以声明这两个对象并初始化,可以为表控件增加行或列,实现动态创建表的程序。这是区别于静态表的之一处:
通常,表不仅用来显示表格的信息,还是一种传统的布局网页的形式,创建网页表格有如下几种形式:
q HTML格式的表格:如<table>标记显示的静态表格。
q HtmlTable控件:将传统的<table>控件通过添加runat=server属性将其转换为服务器控件。
q Table表格控件:就是本节介绍的表格控件。
推荐开发人员在使用静态表格,当不需要对表格做任何逻辑事物处理时,最好使用HTML格式的表格,因为这样可以极大的降低页面逻辑、增强性能。
14、向导控件(Wizard)
ASP.NET提供了一个向导控件,便于在搜集用户信息、或提示用户填写相关的表单时使用。
<asp:Wizard ID="Wizard1" runat="server">
<WizardSteps>
<asp:WizardStep runat="server" title="Step 1">
</asp:WizardStep>
<asp:WizardStep runat="server" title="Step 2">
</asp:WizardStep>
</WizardSteps>
</asp:Wizard>
自动显示标题和控件的当前步骤。标题使用HeaderText属性自定义,同时还可以配置DisplayCancelButton属性显示一个取消按钮,如图5-47所示。不仅如此,当需要让向导控件支持向导步骤的添加时,只需配置WizardSteps属性即可。
Wizard向导控件还支持一些模板。用户可以配置相应的属性来配置向导控件的模板。
q StartNavigationTemplate:该属性指定为Wizard控件的Start步骤中的导航区域显示自定义内容。
q FinishNavigationTemplate:该属性为Wizard控件的Finish步骤中的导航区域指定自定义内容。
q StepNavigationTemplate:该属性为Wizard控件的Step步骤中的导航区域指定自定义内容。
q SideBarTemplate:该属性为Wizard控件的侧栏区域中指定自定义内容。
导航控件的事件:
当双击一个导航控件时,导航控件会自动生成FinishButtonClick事件。该事件是当用户完成导航控件时被触发。向导控件不仅能够使用FinishButtonClick事件,同样也可以使用PreviousButtonClick和FinishButtonClick事件来自定义【上一步】按钮和【下一步】按钮的行为,同样也可以编写CancelButtonClick事件定义单击【取消】按钮时需要执行的操作。
15、xml控件
XML控件可以读取XML并将其写入该控件所在的ASP.NET网页。XML控件能够将XSL转换应用到XML,还能够将最终转换的内容输出呈现在该页中。
常用属性:
q DocumentSource:应用转换的XML文件。
q TransformSource:用于转换XML数据的XSL文件。
XML控件不仅能够呈现XML文档的内容,还能够进行相应的XML的文本操作。
16.验证控件
可以验证服务器控件中用户的输入,并在验证失败的情况下显示一条自定义错误消息。验证控件直接在客户端执行,用户提交后执行相应的验证无需使用服务器端进行验证操作,从而减少了服务器与客户端之间的往返过程。
表单验证控件(RequiredFieldValidator):
指定某个用户在特定的控件中必须提供相应的信息,如果不填写相应的信息,RequiredFieldValidator控件就会提示错误信息。
<form id="form1" runat="server">
<div>
姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="TextBox1" ErrorMessage="必填字段不能为空"></asp:RequiredFieldValidator>
<br />
密码:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
<br />
</div>
</form>
比较验证控件(CompareValidator):
比较验证控件对照特定的数据类型来验证用户的输入。可以方便的判断用户是否正确输入。CompareValidator控件的特有属性如下所示:
q ControlToCompare:以字符串形式输入的表达式。要与另一控件的值进行比较。
q Operator:要使用的比较。
q Type:要比较两个值的数据类型。
q ValueToCompare:以字符串形式输入的表达式。
当使用CompareValidator控件时,可以方便的判断用户是否正确输入。
<form id="form1" runat="server">
<div>
请输入生日:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
毕业日期:
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:CompareValidator ID="CompareValidator1" runat="server"
ControlToCompare="TextBox2" ControlToValidate="TextBox1"
CultureInvariantValues="True" ErrorMessage="输入格式错误!请改正!"
Operator="GreaterThan"
Type="Date">
</asp:CompareValidator>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
<br />
</div>
</form>
范围验证控件(RangeValidator):
可以检查用户的输入是否在指定的上限与下限之间。通常情况下用于检查数字、日期、货币等。范围验证控件(RangeValidator)控件的常用属性如下所示。
q MinimumValue:指定有效范围的最小值。
q MaximumValue:指定有效范围的最大值。
q Type:指定要比较的值的数据类型。
<div>
请输入生日:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RangeValidator ID="RangeValidator1" runat="server"
ControlToValidate="TextBox1" ErrorMessage="超出规定范围,请重新填写"
MaximumValue="2009/1/1" MinimumValue="1990/1/1" Type="Date">
</asp:RangeValidator>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
正则验证控件(RegularExpressionValidator):
它用于确定输入的控件的值是否与某个正则表达式所定义的模式相匹配,如电子邮件、电话号码以及序列号等。
正则验证控件(RegularExpressionValidator)常用的属性是ValidationExpression,它用来指定用于验证的输入控件的正则表达式。客户端的正则表达式验证语法和服务端的正则表达式验证语法不同,因为在客户端使用的是JSript正则表达式语法,而在服务器端使用的是Regex类提供的正则表达式语法。
开发人员也可以自定义正则表达式来规范用户的输入。使用正则表达式能够加快验证速度并在字符串中快速匹配,而另一方面,使用正则表达式能够减少复杂的应用程序的功能开发和实现。注意:在用户输入为空时,其他的验证控件都会验证通过。所以,在验证控件的使用中,通常需要同表单验证控件(RequiredFieldValidator)一起使用。
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="TextBox1" ErrorMessage="正则不匹配,请重新输入!"
ValidationExpression="\d{17}[\d|X]|\d{15}">
</asp:RegularExpressionValidator>
自定义逻辑验证控件(CustomValidator):
允许使用自定义的验证逻辑创建验证控件。例如,可以创建一个验证控件判断用户输入的是否包含“.”号,示例代码如下所示。
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = args.Value.ToString().Contains("."); //设置验证程序,并返回布尔值
}
protected void Button1_Click(object sender, EventArgs e) //用户自定义验证
{
if (Page.IsValid) //判断是否验证通过
{
Label1.Text = "验证通过"; //输出验证通过
}
else
{
Label1.Text = "输入格式错误"; //提交失败信息
}
}
CustomValidator验证控件可以在服务器上执行验证检查。如果要创建服务器端的验证函数,则处理CustomValidator控件的ServerValidate事件。使用传入的ServerValidateEventArgs的对象的IsValid字段来设置是否通过验证。
而CustomValidator控件同样也可以在客户端实现,该验证函数可用VBScript或Jscript来实现,而在CustomValidator控件中需要使用ClientValidationFunction属性指定与CustomValidator控件相关的客户端验证脚本的函数名称进行控件中的值的验证。
验证组控件(ValidationSummary):
对同一页面的多个控件进行验证。同时,验证组控件(ValidationSummary)通过ErrorMessage属性为页面上的每个验证控件显式错误信息。
q DisplayMode:摘要可显示为列表,项目符号列表或单个段落。
q HeaderText:标题部分指定一个自定义标题。
q ShowMessageBox:是否在消息框中显示摘要。
q ShowSummary:控制是显示还是隐藏ValidationSummary控件。
17、导航控件
ASP.NET提供了站点导航的一种简单的方法,即使用站点图形站点导航控件SiteMapPath、TreeView、Menu等控件。
导航控件包括SiteMapPath、TreeView、Menu三个控件,这三个控件都可以在页面中轻松建立导航。这三个导航控件的基本特征如下所示:
q SiteMapPath:检索用户当前页面并显示层次结构的控件。这使用户可以导航回到层次结构中的其他页。SiteMap控件专门与SiteMapProvider一起使用。
q TreeView:提供纵向用户界面以展开和折叠网页上的选定节点,以及为选定项提供复选框功能。并且TreeView控件支持数据绑定。
q Menu:提供在用户将鼠标指针悬停在某一项时弹出附加子菜单的水平或垂直用户界面。
这三个导航控件都能够快速的建立导航,并且能够调整相应的属性为导航控件进行自定义。SiteMapPath控件使用户能够从当前导航回站点层次结构中较高的页,但是该控件并不允许用户从当前页面向前导航到层次结构中较深的其他页面。相比之下,使用TreeView或Menu控件,用户可以打开节点并直接选择需要跳转的特定页。这些控件不会像SiteMapPath控件一样直接读取站点地图。TreeView和Menu控件不仅可以自定义选项,也可以绑定一个SiteMapDataSource。
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Text="新建项" Value="新建项"></asp:MenuItem>
<asp:MenuItem Text="新建项" Value="新建项">
<asp:MenuItem Text="新建项" Value="新建项"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="新建项" Value="新建项">
<asp:MenuItem Text="新建项" Value="新建项"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="新建项" Value="新建项">
<asp:MenuItem Text="新建项" Value="新建项">
<asp:MenuItem Text="新建项" Value="新建项"></asp:MenuItem>
</asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="新建项" Value="新建项"></asp:MenuItem>
</Items>
</asp:Menu>
treeview的相关代码:
<asp:TreeView ID="TreeView1" runat="server">
<Nodes>
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</Nodes>
</asp:TreeView>
18、其他基本控件:
HiddenField控件:隐藏输入框控件,用来保存那些不需要显示在页面上的对安全性要求不高的数据。
隐藏输入框控件作为<input type=“hidden”/>元素呈现在HTML页面。由于HiddenField隐藏输入框控件的值会呈现在客户端浏览器,所以对于安全性较高的数据,并不推荐将它保存在隐藏输入框控件中。隐藏输入框控件的值通过Value属性保存,同时也可以通过代码来控制Value的值,利用隐藏输入框对页面的值进行传递,示例代码如下所示。
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = HiddenField1.Value; //获取隐藏输入框控件的值
}
ImageMap控件:
一个让你可以在图片上定义热点(HotSpot)区域的服务器控件。用户可以通过点击这些热点区域进行回发(PostBack)操作或者定向(Navigate)到某个URL位址。该控件一般用在需要对某张图片的局部范围进行互动操作。ImageMap控件主要由两个部分组成,第一部分是图像。第二部分是作用点控件的集合。其主要属性有HotSpotMode、HotSpots,具体如下所示。
<asp:ImageMap ID="ImageMap1" runat="server" HotSpotMode="PostBack"
ImageUrl="~/images/mobile.jpg" οnclick="ImageMap1_Click">
<asp:CircleHotSpot Radius="15" X="15" Y="15" HotSpotMode="PostBack" PostBackValue="0" />
<asp:CircleHotSpot Radius="100" X="15" Y="15" HotSpotMode="PostBack" PostBackValue="1" />
<asp:CircleHotSpot Radius="300" X="15" Y="15" HotSpotMode="PostBack" PostBackValue="2" />
</asp:ImageMap>
上述代码还添加了一个Click事件,事件处理的核心代码如下所示。
protected void ImageMap1_Click(object sender, ImageMapEventArgs e)
{
string str="";
switch (e.PostBackValue) //获取传递过来的参数
{
case "0":
str = "你点击了1号位置,图片大小将变为1号"; break;
case "1":
str = "你点击了2号位置,图片大小将变为3号"; break;
case "2":
str = "你点击了3号位置,图片大小将变为3号"; break;
}
Label1.Text = str;
ImageMap1.Height =120*(Convert.ToInt32(e.PostBackValue)+1); //更改图片的大小
}
上述代码通过获取ImageMap中的CricleHotSpot控件中的PostBackVlue值来获取传递的参数。
Literal控件:
与Label不同的是,Label控件在生成HTML代码时,会呈现<span>元素。而Lieral控件不会向文本中添加任何HTML代码。如果开发人员希望文本和控件直接呈现在页面中而不使用任何附加标记时,推荐使用Lieral控件。Lieral控件有一个Mode属性,用来控制Lieral控件中的文本的呈现形式。当HTML代码被输出到页面的时候,会以解释后的HTML形式输出。Lieral可以通过Mode属性来选择输出的是HTML样式还是HTML代码
Mode属性具有三种模式,具体如下:
q Transform:添加到控件中的任何标记都将进行转换,以适应请求浏览器的协议。
q PassThrough:添加到控件中的任何标记都将按照原样输出在浏览器中。
q Encode:添加到控件中的任何标记都将使用HtmlEncode方法进行编码,该方法将把HTML编码转换为其文本表示形式。
注意:PassThrough模式和Ttansform模式在通常情况下,呈现的效果并没有区别。
动态缓存更新控件(Substitution):
在ASP.NET中,缓存的使用能够极大的提高网站的性能,降低服务器的压力。Substitution动态缓存更新控件允许用户在页上创建一些区域,这些区域可以用动态的方式进行更新,然后集成到缓存页。Substitution动态缓存更新控件将动态内容插入到缓存页中,并且不会呈现任何HTML标记。用户可以将控件绑定到页上或父用户控件上的方法,自行创建静态方法,以返回要插入到页面中的任何信息。同时,要使用Substitution控件,则必须符合以下标准:
q 此方法被定义为静态方法。
q 此方法接受HttpContext类型的参数。
q 此方法返回String类型的值。
在ASP.NET页面中,为了减少用户与页面的交互中数据库的更新,可以对ASP.NET页面进行缓存,缓存代码可以使用页面参数的@OutputCatch,示例代码如下所示。
<%@ Page
Language="C#" AutoEventWireup="true" CodeBehind="Substitution.aspx.cs" Inherits="_5_17.Substitution" %>
<%@ OutputCache Duration="100" VaryByParam="none" %> //增加一个页面缓存
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
当前的时间为:<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
(有缓存)<br />
当前的时间为:<asp:Substitution ID="Substitution1" runat="server" MethodName="GetTimeNow"/>
(动态更新)</div>
</form>
</body>
</html>
执行事件操作的cs页面核心代码如下所示。
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString(); //页面初始化时,当前时间赋值给Label1标签
}
protected static string GetTimeNow(HttpContext con) //注意事件的格式
{
return DateTime.Now.ToString(); //Substitution控件执行的方法
}