Version 3.0
Web 服务器控件
第三章
2
回顾
? _VIEWSTATE 控件是隐藏控件,在表单提交
到服务器时此控件将添加到表单中。
? ASP.NET 有 若干内置对象,用于提供
ASP.NET 应用程序中必需的功能。它们是:
– Request
– Response
– Application
– Session
– Server
– ObjectContext
3
目标
? 解释 Web 控件
? 解释为什么控件是对象
? 使用控件进行文本输入
? 使用控件进行控制 转移
? 使用控件进行选择
? 讨论 复杂 控件
4
Web 控件
ASP.NET
控件
内部
列表
复杂
验证
5
Web 控件 -内部控件
? ASP.NET 引入一组称为“内部控件”的新控
件,它们专门用于 ASP.NET
? 内部控件的使用方法与 HTML 控件相同,它们
映射到 HTML 元素并通过使用 runat =
"server" 属性在服务器上执行
6
Web 控件 -列表控件
? 这些控件用于在 Web 页中创建数据列表
? 填充这些控件的数据通常是从数据库中检索

? 用户可以从列表中选择一种选项,并且该选
项将存储在数据库中
? 通常使用的标准列表控件是 Repeater、
DataList 和 DataGrid 控件
7
Web 控件 -复杂控件
? 当希望控件拥有复杂的功能或使用 HTML 元
素无法创建的功能丰富的用户界面时,可以
使用复杂控件
– 日历 Web 控件可以创建一个日历
– 用户可以从中选择当前、以前和将来某个月份
的日期
– 用户无需输入不同的日期,只需使用同一日历
控件来选择日期即可
8
Web 控件 -验证控件
? 输入控件的数据需要进行准确性和取值范围
方面的检查
? 在 ASP 中,验证工作只能使用客户端脚本
语言在客户端上执行
? ASP.NET 引入智能验证控件以使验证工作在
服务器端执行
9
作为对象的 Web控件
? Web 控件是对象
– 与对象一样,Web 控件拥有方法和属性,并且
响应事件
– 一旦将 Web 控件包括在 Web 页中,就可以设置
其属性并调用其方法
– 可以为 Web 控件编写服务器端代码以响应在客
户端上发生的事件
10
作为对象的 Web控件示例
<html>
<script language="C#" runat ="server" >
void Button1click(Object Src,EventArgs E)
{
lblMessage.Text=Src.ToString();
btnButton1.Enabled = false;
btnButton2.Visible = true;
}
void Button2click(Object Src,EventArgs E)
{
lblMessage.Text="";
btnButton2.Visible = false;
btnButton1.Enabled = true;
}
</script>
11
对象模型 - 输出结果
示例 1 的输出结果
单击按钮之前
示例 1 的输出结果
单击按钮之后
12
内部控件
<input type= "checkbox">
<input type= "radio">
<asp:CheckBox>
<asp:Radio>
<asp:TextBox rows="1">
<asp:TextBox rows="10">
<input type= "text" >
< textarea>
13
内部控件 -文本输入
<asp:textbox id="name" runat="server"/>
<asp:textbox id="add" textmode="multiline"
rows=“10" columns="10" runat="server"/>
< asp:textbox id="pwd" textmode="password"
runat="server"/>
14
内部控件 -文本输入演示
15
内部控件 -控制转移
将数据回发到
服务器
在页面之间导航
将数据保存到服
务器或访问服务
器上的数据
16
控制转移控件之间的差异
? Button 和 ImageButton 用于将数据传递回服
务器
? 当用户需要在页面之间导航时,主要使用
Hyperlink
? 尽管 LinkButton 看起来像浏览器上的超链接,
但是在单击时,它们会将数据传递回服务器
17
内部控件 -选择
<asp:checkbox id="chkbx1" Text="选择我 " runat="server"/>
<asp:radiobutton id ="radbt1" Text ="单选按钮 1" groupname="radio" runat="server"/>
<asp:radiobutton id ="radbt2" Text =" 单选按钮 2" groupname="radio" runat="server"/>
<asp:radiobutton id ="radbt3" Text =" 单选按钮 3" groupname="radio" runat="server"/>
<asp:listbox id="lstbx1" SelectionMode=" Single" runat="server"/>
<asp:dropdownlist id= "dropdnlst1" runat="server" />
18
内部控件 -选择 - 填充数据的方法
ArrayList arrlist= new ArrayList();
arrlist.Add ("四 ");
arrlist.Add ("五 ");
arrlist.Add ("六 ");
ddl.DataSource=arrlist;
void Page_Load (Object Src,EventArgs E)
{
ddl.Items.Add("<10");
ddl.Items.Add("10-20");
ddl.Items.Add("20-30");
ddl.Items.Add("30-40");
ddl.Items.Add("40-50");
ddl.Items.Add(">50");
}
<asp:listbox id="lbs" runat="server">
<asp:ListItem> 一 </asp:ListItem>
<asp:ListItem> 二 </asp:ListItem>
<asp:ListItem> 三 </asp:ListItem>
</asp:listbox>
<asp:dropdownlist id= "ddl" runat="server" >
<asp:ListItem> 一 </asp:ListItem>
<asp:ListItem> 二 </asp:ListItem>
<asp:ListItem> 三 </asp:ListItem>
</asp:dropdownlist>
19
内部控件 -选择演示
20
容器
<asp:panel id="panel1" Visible="False" runat="server" >
<asp:textbox id="OldPwd" textmode="password" runat="server"/>
<asp:textbox id="NewPwd" textmode="password" runat="server"/>
</asp:panel>
? 容器控件可以包含其他控件。
? 容器控件的主要用途之一是:通过将控件放置在容器控
件中并设置容器控件的属性,就可以一次更改一组控件
的可见性。
21
复杂控件
用于更换 Web 页上的广告 提供日历的全部功能
22
AdRotator
鼠标在图像上方移动时显示的文本
<Advertisements>
<Ad>
<ImageUrl> </ImageUrl>
<TargetUrl> </TargetUrl>
<AlternateText> /AlternateText>
<Keyword> </Keyword>
<Impressions> </Impressions>
</Ad>
</Advertisements>
图像文件的绝对或相对 Url
单击此 Ad 之后访问的目标 Web 站点
指定给此 Ad 的该类别
在循环播放时间安排中广告
的优先级
23
AdRotator-输出结果
24
日历控件事件
日历控件响应两个事件:
25
总结
? 在 ASP.NET 中有四个控件集:
–内部控件
–列表控件
–复杂控件
–验证控件
? 与对象一样,Web 控件拥有方法和
属性,并且响应事件