1. 小视频教程 > 知识库 >

rangevalidator,验证控件有哪几种?简述它们各自的功能

本文目录索引

1,验证控件有哪几种?简述它们各自的功能

现在ASP.NET,你不但可以轻松的实现对用户输入的验证,而且,还可以选择验证在服务器端进行还是在客户端进行,再也不必考虑那么多了,程序员们可以将重要精力放在主程序的设计上了。ASP.NET公有六种验证控件,分别如下:控件名 功能描叙
RequiredFieldValidator(必须字段验证) 用于检查是否有输入值
CompareValidator(比较验证) 按设定比较两个输入
RangeValidator(范围验证) 输入是否在指定范围
RegularExpressionValidator(正则表达式验证) 正则表达式验证控件
CustomValidator(自定义验证) 自定义验证控件
ValidationSummary(验证总结) 总结验证结果 下面,我们来看这些控件的使用:一、RequiredFieldValidator(必须字段验证)的使用RequiredFieldValidator控件使用的标准代码如下:<ASP:RequiredFieldValidator id="Validator_Name" Runat="Server"
 ControlToValidate="要检查的控件名"
 ErrorMessage="出错信息"
 Display="Static|Dymatic|None"
 >
 占位符
</ASP: RequiredFieldValidator >在以上标准代码中:
ControlToValidate:表示要进行检查控件ID;
ErrorMessage:表示当检查不合法时,出现的错误信息;
Display:错误信息的显示方式;Static表示控件的错误信息在页面中占有肯定位置;Dymatic表示控件错误信息出现时才占用页面控件;None表示错误出现时不显示,但是可以在ValidatorSummary中显示;
占位符:表示Display为Static时,错误信息占有"占位符"那么大的页面空间;现在,让我们看一个实例:
<ASP:TextBox id="txtName" RunAt="Server"/>
<ASP:RequiredFieldValidator id="Validator1" Runat="Server"
 ControlToValidate="txtName"
 ErrorMessage="姓名必须输入"
 Display="Static">
*姓名必须输入
</ASP:RequiredFieldValidator>在以上例子中,检查txtName控件是否有输入,如果没有,显示错误信息"姓名必须输入"。是不是很简单?
注意:以上代码和下面其他控件的代码最好放入Form中,和ASP中不一样的是,Form最好写为这样:
<Form RunAt="Server">
其他代码
</Form> 
这样,Form在服务器端执行,提交才会有效;二、CompareValidator(比较验证)控件比较控件比较两个控件的输入是否符合程序设定,大家不要把比较仅仅理解为"相等",尽管相等是用的最多的,其实,这里的比较包括范围很广,大家看标准代码就会明白。比较控件的标准代码如下:
<ASP:CompareValidator id="Validator_ID" RunAt="Server"
ControlToValidate="要验证的控件ID"
errorMessage="错误信息"
ControlToCompare="要比较的控件ID"
type="String|Integer|Double|DateTime|Currency"
operator="Equal|NotEqual|GreaterThan|GreaterTanEqual|LessThan|LessThanEqual|DataTypeCheck"
Display="Static|Dymatic|None"

占位符
</ASP:CompareValidator>在以上标准代码中:
Type表示要比较的控件的数据类型;
Operator表示比较操作(也就是刚才说的为什么比较不仅仅是"相等"的原因),这里,比较有7种方式;
其他属性和RequiredFieldValidator相同;
在这里,要注意ControlToValidate和ControlToCompare的区别,如果operate为GreateThan,那么,必须ControlToCompare大于ControlToValidate才是合法的,这下,应该明白它们两者的意义了吧?例子程序请参考RequiredFieldValidator控件,对照标准代码自己设计。三、RangeValidator(范围验证)控件验证输入是否在一定范围,范围用MaximumValue(最大)和MinimunVlaue来确定,标准代码如下:<ASP:RangeValidator id="Vaidator_ID" Runat="Server"
controlToValidate="要验证的控件ID"
type="Integer"
MinimumValue="最小值"
MaximumValue="最大值"
errorMessage="错误信息"
Display="Static|Dymatic|None"

占位符
</ASP:RangeValidator>在以上代码中:
用MinimumValue和MaximumValue来界定控件输入值得范围,用type来定义控件输入值的类型。四、RegularExpresionValidator(正则表达式)控件正则表达式验证控件的功能非常强大,你可以自己容易构造验证方式,我们先来看看标准代码:<ASP:RegularExpressionValidator id="Validator_ID" RunAt="Server"
ControlToValidate="要验证控件名"
ValidationExpression="正则表达式"
errorMessage="错误信息"
display="Static"

占位符
</ASP:RegularExpressionValidator>在以上标准代码中,ValidationExpression是重点,现在来看看它的构造:
在ValidationExpression中,不同的字符表示不同的含义:
"."表示任意字符;
"*"表示和其他表达式一起,表示容易组合;
"[A-Z]"表示任意大写字母;
"\d"表示容易一个数字;
注意,在以上表达式中,引号不包括在内;
举例:
 正则表达式:".*[A-Z]"表示数字开头的任意字符组合其后接一个大写字母。五、ValidationSummary(验证总结)控件该控件收集本页的所有验证错误信息,并可以将它们组织以后再显示出来。其标准代码如下:<ASP:ValidationSummary id="Validator_ID" RunAT="Server"
HeaderText="头信息"
ShowSummary="True|False"
DiaplayMode="List|BulletList|SingleParagraph"

</ASP: ValidationSummary > 
在以上标准代码中,HeadText相当于表的HeadText,DisplayMode表示错误信息显示方式:List相当于HTML中的<BR>;BulletList相当于HTML中的<LI>;SingleParegraph表示错误信息之间不作如何分割;六、CustomValidator(自定义验证)控件该控件用自定义的函数界定验证方式,其标准代码如下:<ASP:CustomValidator id="Validator_ID" RunAt="Server"
controlToValidate="要验证的控件"
onServerValidateFunction="验证函数"
errorMessage="错误信息"
Display="Static|Dymatic|None"

占位符
</ASP: CustomValidator >以上代码中,用户必须定义一个函数来验证输入。

验证控件有哪几种?简述它们各自的功能

2,Microsoft Visual Studio 2005 无法添加控件

CuteEditor 6.0 在线HTML编辑器的领航者
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=144183
ComponentArt.Charting.WebChart.dll
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=144386
ComponentArt.Web.UI 2007.2源代码+实例+DLL
http://bbs.topsage.com/dispbbs_123_161434_1.html
ComponentArt.WebUI.2007.1破解DLL
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=143055
ComponentArt.WebUI.2007.1源代码
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=143224
ComponentArt.Web.UI.2006.2
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=143212
ComponentArt.Web.UI.2006.2源代码
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=143219
ComponentArt.Web.UI.2006.1
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=142983
Infragistics NetAdvantage for ASP.NET 2007 Vol 2
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=159861
Infragistics NetAdvantage AppStylist 2007 Vol 2
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=159859
Infragistics TestAdvantage WinForms 2007 For CLR2
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159870
Infragistics TestAdvantage WinForms 2007 for CLR1.x
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159868
Infragistics NetAdvantage for Windows Forms 2007 Vol 2
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159863
Infragistics NetAdvantage 2007 for WPF
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159857
Infragistics NetAdvantage 2006 Vol2 CLR1.x
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159814
Infragistics NetAdvantage 2006 Vol2 for CLR2
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=159854
Infragistics NetAdvantage 2006 Vol2 CLR1.x
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159814
ComponentOne Studio 2007 v1.5 for ASP.NET 2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=159753
ComponentOne Studio 2007 v1.5 for ASP.NET 1.x
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=159745
ComponentOne Studio 2006 v2 for ASP.NET 2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=159739
ComponentOne Studio 2006 v2 for ASP.NET 1.x
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=159734
ComponentOne Studio for Mobile Devices 2007 v1.5 CLR1x
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159812
ComponentOne Studio for Mobile Devices 2006 v2 CLR2
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159811
ComponentOne Studio for Mobile Devices 2006 v2 CLR1.x
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159807
ComponentOne Studio 2007 v1.5 for .NET CLR2
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159802
ComponentOne Studio 2007 v1.5 for .NET CLR1.x
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159798
ComponentOne Studio for .NET 2006 v2 CLR2
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159780
ComponentOne Studio for .NET 2006 v2 CLR1.x
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159777
ComponentOne Studio for ActiveX 2007 v1.5
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159727
ComponentOne Studio for ActiveX 2006 v2 CLR2
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159725
ComponentOne Studio for ActiveX 2006 v2 CLR1.x
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159724
Telerik RadWindow for ASP.NET 2.0 v1.8.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156136
Telerik RadUpload for ASP.NET 2.0 v2.3.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156135
Telerik RadTreeView for ASP.NET 2.0 v6.2.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156134
Telerik RadTabStrip for ASP.NET 2.0 v3.5.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156132
Telerik RadToolbar for ASP.NET 2.0 v1.5.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156133
Telerik RadSplitter for ASP.NET 2.0 v1.2.2.1
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156131
Telerik RadSpell for ASP.NET 2.0 v3.1.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156130
Telerik RadRotator for ASP.NET 2.0 v2.6.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156129
Telerik RadPanelbar for ASP.NET 2.0 v4.2.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156128
Telerik RadMenu for ASP.NET 2.0 v4.2.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156127
Telerik RadInput for ASP.NET 2.0 v2.0.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156126
Telerik RadGrid for ASP.NET 2.0 v4.6.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156125
Telerik RadEditor for ASP.NET 2.0 v7.1.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156124
Telerik RadComboBox for ASP.NET 2.0 v2.7.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156122
Telerik RadDock for ASP.NET 2.0 v1.8.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156123
Telerik RadChart for ASP.NET 2.0 v3.2.1.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156121
Telerik RadCalendar for ASP.NET 2.0 v2.1.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156120
Telerik RadAjax for ASP.NET 2.0 v1.7.2.0
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=156119
telerik r.a.d.upload
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=143044
telerik r.a.d.window
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=142980
telerik r.a.d ToolBar
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=143077
telerik r.a.d.Chart
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=143075
telerik r.a.d.combobox
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=143048
DotNetBar for VS2005 6.8.0.1
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=144521
DotnetCharting 4.3破解DLL
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=144388
DotNET Charting WebForms
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=144461
dotnetCharting.WinForms
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=144455
TeeChart for .NET 3.2.2763.26084 完美DLL
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=165932
TeeChart for .NET 3.2.2699.17379 完美DLL
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=165929
DevExpress 7.3.4 完美破解DLL
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=165852
Dxperience 7.3.5 完美破解DLL
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=165851
DevExpress.LocalizationCHS.Dll
http://bbs.topsage.com/dispbbs_121_169983_1.html
NickLee.Web.UI
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=143052
SolpartWebControls
http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=142981
AspNetPager 6.0 for ASP.NET 1.x 自定义分页控件
http://bbs.topsage.com/dispbbs_123_161692_1.html
AspNetPager 6.0 for ASP.NET 2.0 自定义分页控件
http://bbs.topsage.com/dispbbs_123_161696_1.html
数据操作类 Socut.Data.dll for .NET 2.0 v3.1
http://bbs.topsage.com/dispbbs_123_161867_1.html
数据操作类 Socut.Data.dll for .NET 1.x v3.1
http://bbs.topsage.com/dispbbs_123_161866_1.html
Developer Express for .NET v7.3.5.0全套完美无限制版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166512

3,visual studio 2005 DataGrid 控件在哪?

在VS2005里面推荐用DataGridView控件。
如果你一定要使用DataGrid,那么可以按照如下步骤设置:
(假设你想把DataGrid控件放到工具箱的“公共控件”中)
1、选择“公共控件”
2、在“公共控件”中点击右键,选择“选择项...”
3、在弹出的窗口中可以找到DataGrid,在前面打上钩,点确定。

DataGrid就可以出现在你的工具箱中了

4,c#中,如何最简单的判断文本框里输入的是否是纯数字?(初学者)

using System.Text.RegularExpressions;
string SuID = TEXTBOX1.text.ToString();

Regex reg = new Regex("^[0-9]+$"); //判断是不是数据,要不是就表示没有选择,则从隐藏域里读出来
Match ma = reg.Match(SuID);
if (ma.Success)
{
//是数字时的操作
}
else{}

5,c#中如何控制文本框中输入字符的范围

在定制的TextBox控件中,如果只允许输入数字,需要考虑如下三种情况:
正常按键输入的字符,包括西文、中文字符等
通过键盘快捷键方式贴入的文本,即Ctrl+V操作
通过上下文关联菜单的Mouse操作贴入的文本,即”粘贴“操作
在探讨的同类文章中,多数只考虑了第1种情况,忽略得了第2、3种常见的操作。本文探讨的处理方法核心思路是重写事件OnKeyPress()和两个方法 ProcessCmdKey()与WndProc(),并把Ctrl+V、关联菜单的Paste操作统一到键盘录入操作中,从而在 OnKeyPress()屏蔽掉非数字键。

1、重写键盘事件OnKeyPress()

键盘输入的字符可以通过重写TextBox控件的OnKeyPress()事件处理,见如下代码:
protected override void OnKeyPress(KeyPressEventArgs e) // 屏蔽非数字键{ base.OnKeyPress(e); if (this.ReadOnly) // 只读, 不处理 { return; } if ((int)e.KeyChar <= 32) // 特殊键(含空格), 不处理 { return; } if (!char.IsDigit(e.KeyChar)) // 非数字键, 放弃该输入 { e.Handled = true; return; }}
2、重写命令键处理方法ProcessCmdKey()

可以在ProcessCmdKey()中捕获快捷键Ctrl+V操作。首先要清除当前的选择文本,然后读取剪切板ClipBoard中的内容,最后通过模拟键盘输入的方式”输入“ClipBoard的内容。需要指出,在ProcessCmdKey()方法中不能使用静态方法 SendKeys.Send(),但可以通过控件的WndProc()方法发送字符消息以达到模拟键盘录入的目的。见如下代码:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) // 捕获Ctrl+V{ if (keyData == (Keys)Shortcut.CtrlV) // 快捷键 Ctrl+V 粘贴操作 { this.ClearSelection(); string text = Clipboard.GetText(); for (int k = 0; k < text.Length; k++) // can not use SendKeys.Send { // 通过消息模拟键盘输入, SendKeys.Send()静态方法不行 SendCharKey(text[k]); } return true; } return base.ProcessCmdKey(ref msg, keyData);}private void SendCharKey(char c) // 通过消息模拟键盘录入{ Message msg = new Message(); msg.HWnd = this.Handle; msg.Msg = WM_CHAR; // 输入键盘字符消息 0x0102 msg.WParam = (IntPtr)c; msg.LParam = IntPtr.Zero; base.WndProc(ref msg);}
3、重写消息处理方法WndProc()

可以在定制TextBox控件中创建无内容的上下文菜单对象,从而屏蔽该菜单,方法是在定制控件的构造函数中增加如下代码:
public class CustomTextBox: TextBox{ // 创建无内容菜单对象, 等价屏蔽该控件的上下文菜单 this.ContextMenu = new ConTextMenu(); }由于上下文菜单的Paste操作对应Windows的WM_PASTE消息,于是可以在控件的WndProc()方法中捕获该消息,然后获得剪切板 ClipBoard中的内容,最后通过SendKeys.Send()方法模拟键盘录入操作。需要注意,这里不能调用前面ProcessCmdKey() 中模拟键盘输入函数SendCharKey()。见如下代码:
protected override void WndProc(ref Message m) // 捕获Mouse的Paste消息{ if (m.Msg == WM_PASTE) // 选择上下文菜单的"粘贴"操作 { this.ClearSelection(); SendKeys.Send(Clipboard.GetText()); // 模拟键盘输入 } else { base.WndProc(ref m); }}
4、消除选择ClearSelection()、删除字符DeleteText()

还必须分析前面代码中的两个函数:
ClearSelection()用以清除当前的选择文本,即清除this.SelectedText
DeleteText()则删除当前字符
需要指出其中的技巧,就是转换Delete键操作为BackSpace操作。此外,函数DeleteText()还需要确定当前的this.SelectionStart值。具体代码如下:
private void ClearSelection() // 清除当前TextBox的选择{ if (this.SelectionLength == 0) { return; } int selLength = this.SelectedText.Length; this.SelectionStart += this.SelectedText.Length; // 光标在选择之后 this.SelectionLength = 0; for (int k = 1; k base.Text.Length) { return; } } if (selStart == 0 || selStart > base.Text.Length) // 不需要删除 { return; } if (selStart == 1 && base.Text.Length == 1) { base.Text = ""; base.SelectionStart = 0; } else // selStart > 0 { base.Text = base.Text.Substring(0, selStart - 1) + base.Text.Substring(selStart, base.Text.Length - selStart); base.SelectionStart = selStart - 1; }}
5、结语

本文探讨的是TextBox控件输入的事前处理模式,即在输入字符的同时屏蔽非数字键。在实际应用中一般采取事后处理模式,即在TextBox控件的Exit、Validate等事件中进行输入后处理——离开该控时进行验证。但事后处理模式有如下不足:
与数据源绑定时输入非数字字符可能抛出异常,需要考虑异常捕获
需要判断数据并给出错误提示等处理