ASP.NET学习系列(五)开始控件之旅之TextBox及其Ajax扩展控件
TextBox既可以用于用户输入,也可以用于只读文本显示。TextBox可以通过TextMode属性设置成单行、多行输入或者充当密码输入框,隐藏输入文本。TextMode接受三个输入值:
SingleLine:显示单行输入;
MultiLine:显示多行输入,会让包含的文本自动换行;
Password:屏蔽文本的单行输入框。
当容纳的文本超出控件长度时,文本开始处会滚动到该框的左边。
看一个简单示例:
代码
<!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:TextBox ID="TextBox1" TextMode="SingleLine"
runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox2" TextMode="MultiLine"
runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox3" TextMode="Password"
runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox4" TextMode="SingleLine"
Text="there is a so long long long string!"
runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
运行效果:
TextBox有一些属性可以控制自身的显示特征和行为。
AutoPostBack:确定在TextBox上的内容变化时,是否立即回发。
AutoCompleteType:用于关联TextBox控件和AutoComplete类。
Columns:指定显示的列数。
MaxLength:指定允许输入字符数的最大值,默认值为0,表示不强制限定最大值。
ReadOnly:指定是否为只读状态。
Rows:多行文本中限制的行数,默认值为0,表示不限制最大值。
TabIndex:用于指定TextBox控件的Tab顺序。
Focus:把初始表单焦点定位到此TextBox控件上。
Wrap:在TextMode设置为MultiLine时,指示是否自动换行。
ValidationGroup:指定验证组。
TextChanged:在TextBox控件内容变化时在服务器端引发再来一个充分说明问题的示例:
代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TextBoxDemo2.aspx.cs" Inherits="TextBoxDemo2" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
<!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" AssociatedControlID="TextBox1"
Text="Your Name:"></asp:Label>
<asp:TextBox AutoPostBack="true" AutoCompleteType="LastName"
ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged" ></asp:TextBox>
<br />
<asp:Label ID="Label2" runat="server" Text="Your Name:"></asp:Label>
<br />
<asp:TextBox ID="TextBox2" TextMode="MultiLine" Wrap="true"
runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
效果图:
TextBox的Ajax扩展程序
TextBox虽然可以满足一般的输入要求,但很难满足现在网页的特殊需要。比如,一个需要输入日期的输入框,用户则样确定需要的输入格式。Ajax控件工具包提供了一些TextBox的扩展程序控件,满足了多数的特殊需求,使网页设计更加得
心应手,丰富多彩。下面看一下它们都有哪些独到之处。
1、Autocomplete:它可以根据已经添加到TextBox控件的文本,为TextBox提供一个可能值的显示列表。该列表是通过查询后台的Web服务来生成。
2、Calendar:在TextBox获得焦点时,弹出一个标准的Calendar控件。
属性:
Animated:值为True时,日历以动画方式弹出;为FALSE时,日历直接显示。默认为false。
CssClass:指定日历显示的CSS样式。
FirstDayOfWeek:指定日历中显示的每周的第一天以星期几显示。
Format:文本框中日期的显示格式。
PopupButtonID:必须点击此ID指定的按钮才能显示日历。
3、FilteredTextBox:允许你指定一个可能添加到文本框的字符列表,不在列表中的字符不允许显示在该TextBox中。
属性:TargetControlID - 需要具有“过滤”功能的 TextBox控件ID
FilterType - 被约束的方式,包括: Numbers, LowercaseLetters,UppercaseLetters, 和 Custom; 可以采用逗号(,)进行组合。 如果指定了 Custom,那么 ValidChars 属性将被用于指定有效的字符。
FilterMode - 采用的约束模式,可以是 ValidChars (默认) 或者 InvalidChars。如果被设置为 InvalidChars,那么FilterType 必须被设置为Custom;如果被设ValidChars,那么 FilterType 必须包含 Custom。
ValidChars - 一个用字符串表示的有效字符集合,如果没有在 FilterType 设置了Custom,那么该设置将会被忽略。
InvalidChars - 一个用字符串表示的非法字符集合,如果没有在 FilterType 设置了Custom ,那么该设置将会被忽略。
FilterInterval - 一个用整数标示的产生“过滤”时间间隔,用毫秒表示,默认为250(毫秒)。
4、MaskedEditExtender:指定了一个要添加到文本框中的字符串格式。
属性:
TargetControlID:需要进行格式设定的TextBox控件。
Mask:TextBox控件中的格式。
OnFocusCssClass:当TextBox得到焦点时使用的css样式。
OnValidCssClass:当TextBox中输入无效字符时使用的css样式。
MessageValidatorTip:当TextBox进行信息输入时是否有提示。值为True,则有提示;值为False,则没有提示。
MaskType:TextBox中输入的字符进行验证的类型。有Date,Number,Time。
5、NumericUpDown:该控件向TextBox的一侧添加了“up”和“down”两个按钮,用于增加或减少输入框中数字的大小。
属性:
TargetControlID:该控件的目标作用控件。
Width:该控件加上目标TextBox控件的宽度,要是不设定将看不到TextBox控件。
RefValues:该控件中使用的一个字符串列,用于在TextBox中递增递减。
ServiceUpPath:调用增加值的web方法时的路径。
ServiceDownPath:调用减少值的web方法时的路径。
ServiceUpMethod:调用增加值的web方法。
ServiceDownMethod:调用减少值的web方法。
TargetButtonUpID:自定义的增加值的控件按钮。
TargetButtonDownID:自定义的减少值的控件按钮。6、PasswordStrength:对控件输入密码的情况提供反馈信息,用户可以知道输入的密码的安全强度。
属性:
DisplayPosition:提示的信息的位置。
StrengthIndicatorType:强度信息提示方式,有文本和进度条StrengthIndicatorType="Text|BarIndicator"
PreferredPasswordLength:密码的长度
PrefixText:用文本方式时开头的文字,PrefixText="Strength:"
TextCssClass: 用文本方时文字的CSS样式。
MinimumNumericCharacters: 密码中最少要包含的数字数量
MinimumSymbolCharacters: 密码中最好要包含的符号数量(*,#)
RequiresUpperAndLowerCaseCharacters:是否需要区分大小写
TextStrengthDescriptions: 文本方式时的文字提示信息,TextStrengthDescriptions="弱;中;强"
BarIndicatorCssClass:进度条的CSS样式
BarBorderCssClass: 进度条边框的CSS样式
HelpStatusLabelID: 帮助提示信息的Lable控件ID
7、PopupControl:允许你把其他控件或控件组关联到一个文本框上,让文本框输入的值输入更简单。
8、Slider:它定义了一个TextBox控件允许设定的数值范围,然后会有一个运行用户拖动的滑块图,用户拖动到的值会替换掉文本框中的值。
属性:
BoundControlID: 绑定的控件(TextBox或其他)
Decimals: 小数的位数
EnalbeHandleAnimation: 是否允许以动画表示用户拖动
HandleCssClass: Slider 拖动点的 Css 样式
HandleImageUrl: 以图片表示 Slider 拖动点的图片路径指向
Lenth: 滑动条的长度
Maximum: 最大限度
Minimum: 最小限度
Orientation: 设置方位
RailCssClass: Slider 控件轨迹的 Css 样式
RaiseChangeOnlyOnMouseUp: 如果设置为 True 只有当拖动的结束的时候,也就是鼠标按键被放开的时候才触发页面其值变换事件。
Steps: 步长9、TextBoxWatermark:用于在控件中显示提示文本信息,该信息在用户没有输入时是可见的。一旦用户点击,水印
马上就会消失。
属性:
TargetControlID: 需要“水印”化的 TextBox 控件 ID
WatermarkText: 当 TextBox 呈现“水印”形式的时候,显示的提示信息
WatermarkCssClass: 当 TextBox 呈现“水印”形式的时候,采用的 Css 表现样式
最后,看一个囊括所有扩展控件的例子:
代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TextBoxWithAjax.aspx.cs" Inherits="TextBoxWithAjax" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
<!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">
<style type="text/css">@import url(StyleSheet.css);</style>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<cc1:CalendarExtender ID="TextBox1_CalendarExtender" runat="server"
Enabled="True" TargetControlID="TextBox1">
</cc1:CalendarExtender>
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<cc1:FilteredTextBoxExtender ID="TextBox2_FilteredTextBoxExtender"
runat="server" Enabled="True" TargetControlID="TextBox2"
FilterType="Custom, Numbers"
ValidChars="+-=/*()." >
</cc1:FilteredTextBoxExtender>
<br />
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<cc1:MaskedEditExtender ID="TextBox3_MaskedEditExtender" runat="server"
ErrorTooltipEnabled="true" Enabled="True" Mask="99/99/9999" MaskType="DateTime"
TargetControlID="TextBox3">
</cc1:MaskedEditExtender>
<br />
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<cc1:NumericUpDownExtender ID="TextBox4_NumericUpDownExtender" runat="server"
Enabled="True" Maximum="100"
Minimum="10"
Step="10"
TargetControlID="TextBox4" Width="150">
</cc1:NumericUpDownExtender>
<br />
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
<cc1:PasswordStrength ID="TextBox5_PasswordStrength" runat="server"
DisplayPosition="RightSide" StrengthIndicatorType="Text"
MinimumNumericCharacters="3" TextStrengthDescriptions="弱;中;强"
PreferredPasswordLength="8"
Enabled="True" TargetControlID="TextBox5">
</cc1:PasswordStrength>
<br />
<asp:TextBox ID="SliderBound" runat="server" Width="100" />
<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
<cc1:SliderExtender ID="TextBox6_SliderExtender" runat="server" Enabled="True"
Maximum="100" Minimum="0" Steps="11" TargetControlID="TextBox6" Length="100"
BoundControlID="SliderBound"
>
</cc1:SliderExtender>
<br />
<asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
<cc1:TextBoxWatermarkExtender ID="TextBox7_TextBoxWatermarkExtender"
runat="server" Enabled="True" TargetControlID="TextBox7"
WatermarkText="please input anything." WatermarkCssClass="watermark" >
</cc1:TextBoxWatermarkExtender>
<br />
<br />
<br />
</div>
</form>
</body>
</html>
最有成就感的效果图:
![]()



浙公网安备 33010602011771号