Ext.Net学习笔记21:Ext.Net FormPanel 字段验证(validation)

作为表单,字段验证当然是不能少的,今天我们来一起看看Ext.Net FormPanel的字段验证功能。

约束功能

为了防止用户输入不合法的数据,我们可以使用约束功能来限制用户的输入,例如TextField的 MinLength/MaxLength,NumberField的MinValue/MaxValue,DateField的MinDate /MaxDate等属性,它们可以将用户输入的值限定在一个合法的范围内,防患于未然。

TextField还有一个EnforceMaxLength属性,它是Ext.Net扩展出来的,用来设定生成的html input元素的maxlength属性,从最底层限定用户输入长度。

另外,TextField 的AllowBlank属性可以控制字段是否为必填字段,true(默认值)为非必填,false为必填。

必填项验证(AllowBlank)

效果:

代码:

<ext:TextField runat="server" ID="txtEmail"
FieldLabel="Email" Anchor="50%"
AllowBlank="false"></ext:TextField>

长度限制(MinLength/MaxLength)

效果:

代码:

<ext:TextField runat="server" ID="txtEmail"
FieldLabel="Email" Anchor="50%"
AllowBlank="false"
MinLength="5" MaxLength="10">
</ext:TextField>

对FieldContainer进行验证

效果:

代码:

<ext:FieldContainer ID="FieldContainer1"
runat="server"
Width="350"
FieldLabel="Full Name"
Layout="HBoxLayout"
DefaultMargins="0 5 0 0"
DefaultFlex="1"
CombineErrors="true"
MsgTarget="Under">
<FieldDefaults AllowBlank="false" LabelAlign="Top" />
<Items>
<ext:TextField FieldLabel="First Name" />
<ext:TextField FieldLabel="Last Name" />
</Items>
</ext:FieldContainer>

验证类型

ExtJS提供的验证类型被称为VTypes,包括常用的一些类型验证,例如URL、Email等。

代码如下:

<ext:TextField runat="server" ID="txtEmail"
FieldLabel="Email" Anchor="50%"
AllowBlank="false"
Vtype="email">
</ext:TextField>
<ext:TextField runat="server" ID="txtUrl"
FieldLabel="网址" Anchor="50%"
AllowBlank="false"
Vtype="url">
</ext:TextField>

对于日期范围的验证,效果如下:

代码如下:

<ext:DateField
ID="StartDate" runat="server" FieldLabel="开始"
Vtype="daterange" EndDateField="EndDate" />
<ext:DateField
ID="EndDate" runat="server" FieldLabel="结束"
Vtype="daterange" StartDateField="StartDate" />

自定义验证类型

ExtJS提供了扩展自定义验证类型的功能,下面让我们来扩展那一个密码验证类型:

<script>
Ext.apply(Ext.form.VTypes, {
password: function (val, field) {
if (field.initialPassField) {
var pwd = Ext.getCmp(field.initialPassField);
return pwd ? (val === pwd.getValue()) : false;
}
return true;
},
passwordText: "Passwords do not match"
});
</script>

接下来是使用代码:

<ext:TextField
ID="PasswordField"
runat="server"
FieldLabel="Password"
InputType="Password" />
<ext:TextField ID="TextField1"
runat="server"
Vtype="password"
FieldLabel="Confirm Password"
InputType="Password">
<CustomConfig>
<ext:ConfigItem Name="initialPassField"
Value="PasswordField" Mode="Value" />
</CustomConfig>
</ext:TextField>

效果图如下:

在服务器端进行验证

除了客户端ExtJS丰富的功能之外,Ext.Net还可以方便的进行服务器端的数据验证:

<ext:TextField runat="server" ID="txtEmail"
FieldLabel="Email" Anchor="50%"
IsRemoteValidation="true">
<RemoteValidation OnValidation="txtName_Validation">
</RemoteValidation>
</ext:TextField>

然后我们来编写服务器端方法:

protected void txtName_Validation(object sender, RemoteValidationEventArgs e)
{
var field = (TextField)sender;
if (field.Text == "qeefee")
{
e.Success = true;
}
else
{
e.Success = false;
e.ErrorMessage = field.Text + "不行,只能输入qeefee";
}
}

Ext.Net学习笔记21:Ext.Net FormPanel 字段验证(validation)的更多相关文章

  1. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法

    Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...

  2. Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法

    Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法 在上一篇笔记中我们介绍了Ext.Net的简单用法,并创建了一个简单的登录表单.今天我们将看一下如何更好是使用FormPanel ...

  3. 【Ext.Net学习笔记】02:Ext.Net用法概览、Ext.Net MessageBus用法、Ext.Net布局

    Ext.Net用法概览 Ext.Net还是很强大,如果运用熟练可以极大的提高编程效率.如果你也要学习Ext.Net,原文博主推荐书籍:<Ext.Net Web 应用程序开发教程>,是英文的 ...

  4. Ext.Net学习笔记23:Ext.Net TabPanel用法详解

    Ext.Net学习笔记23:Ext.Net TabPanel用法详解 上面的图片中给出了TabPanel的一个效果图,我们来看一下代码: <ext:TabPanel runat="se ...

  5. 【Ext.Net学习笔记】06:Ext.Net GridPanel的用法(GridPanel 折叠/展开行、GridPanel Selection、 可编辑的GridPanel)

    GridPanel 折叠/展开行 Ext.Net GridPanel的行支持折叠/展开功能,这个功能个人觉得还说很有用处的,尤其是数据中包含图片等内容的时候. 下面来看看效果: 使用行折叠/展开功能之 ...

  6. 【Ext.Net学习笔记】05:Ext.Net GridPanel的用法(包含Filter、Sorter、Grouping、汇总(Summary)的用法)

    GridPanel是用来显示数据的表格,与ASP.NET中的GridView类似. GridPanel用法 直接看代码: <ext:GridPanel runat="server&qu ...

  7. 【Ext.Net学习笔记】04:Ext.Net中使用数据、Ext.Net Store的用法、Ext.Net ComboBox用法

    之前的几篇文章都是介绍Ext.Net较为基础的东西,今天的这一篇将介绍数据的一些用法,包括XTemplate绑定数据.Store(Modal.Proxy).ComboBox的用法等. XTemplat ...

  8. 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解

    Ext.Net通过DirectEvents进行服务器端异步的事件处理.[Ext.Net学习笔记]02:Ext.Net用法概览.Ext.Net MessageBus用法.Ext.Net布局 中已经简单的 ...

  9. 【Ext.Net学习笔记】01:在ASP.NET WebForm中使用Ext.Net

    Ext.NET是基于跨浏览器的ExtJS库和.NET Framework的一套支持ASP.NET AJAX的开源Web控件,包含有丰富的Ajax运用,其前身是Coolite. 下载地址:http:// ...

随机推荐

  1. 教程-Python实例-发送邮件功能

    相关资料: http://www.cnblogs.com/xiaowuyi 实例代码: import smtplib from email.mime.text import MIMEText mail ...

  2. SQL2008-备份SQL数据库的语句

    SQL2008:1.备份库BACKUP DATABASE CDJQ_CEM2008 TO DISK = 'd:\zhu\123.bak'2.开启RAR加压功能EXEC sp_configure 'sh ...

  3. mssql游标demo

    declare @billIds varchar(400) declare @billId varchar(40) DECLARE c1 CURSOR FOR select top 5 SaleNo ...

  4. Method Swizzling 和 AOP 实践(转)

    上一篇介绍了 Objective-C Messaging.利用 Objective-C 的 Runtime 特性,我们可以给语言做扩展,帮助解决项目开发中的一些设计和技术问题.这一篇,我们来探索一些利 ...

  5. (原创)vagrant up 异常报错,出现 There was an error while executing `VBoxManage` 的解决方法

    最近在使用 vagrant homestead 时,不小心在虚拟机上使用了 exit 命令退出虚拟机,导致再使用 vagrant up 时出现以下错误: Bringing machine 'larav ...

  6. 修复bug的流年

    工作的过程中,总是会遇到莫名其妙的错误.bug,由于记忆力有限,用一篇文章记录所遇到的bug及解决过程,解决的过程总是痛苦与欢乐.还有一丝丝的无奈,或许这才是真实的生活. 在VS的项目属性" ...

  7. linux netlink套接字学习资料

    理论: http://blog.csdn.net/unbutun/article/details/3394061 进一步深入: http://edsionte.com/techblog/archive ...

  8. [Open Projects Series] ViewPagerTransforms

    https://github.com/jfeinstein10/JazzyViewPager https://github.com/ToxicBakery/ViewPagerTransforms

  9. android131 360 01 闪屏页和主页面

    主界面: 软件升级流程: 清单文件: <?xml version="1.0" encoding="utf-8"?> <manifest xml ...

  10. windows远程关机重启

    windows远程关机 http://lsscto.blog.51cto.com/779396/245681 shutdown http://baike.baidu.com/view/596875.h ...