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. hdoj 2178 猜数字

    猜数字 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  2. iOS - Xcode升级到5.1& iOS升级到iOS7.1问题:Undefined symbols for architecture x86_64

    Xcode升级到5.1 新特性之一就是默认让所有App都通过64位编译器编译.原来在Xcode5.0.x的时候默认的Standard architectures只有(arm7,armv7s),到5.1 ...

  3. RC522天线匹配参数【worldsing笔记】

    图为Device读卡器的参数值 EMC电路对读写距离影响不大:                   L3 和L4 固定为2.2uH:                  C11和C12也是固定值,如果P ...

  4. Floating-Info---Android

    https://github.com/alt236/Floating-Info---Android    

  5. [Javascript + lodash] sortBy and sortedIndex

    sortBy: var collection = ['John', 'Petteri', 'Antti', 'Joonas', 'Zhentian']; var sorted = _.sortBy(c ...

  6. SAP ABAP MARD和MARDH计算逻辑

    mard里记载的是当前库存的数量,但是期间并不一定是当月.比如你物料4月一整月都没有库存数量变化(没收没发),那么5月初你看mard里的条目期间数还是4月而非5月. 当某个期间发生货物移动的时候,系统 ...

  7. windows远程关机重启

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

  8. 《RESTful Web Services》第二章 识别资源

    引言:开放RESTful Web服务的首要步骤之一是设计资源模型. 2.1 如何从领域名词中识别资源   2.2 如何选择资源粒度     一些因素会影响数据库表和对象模型的设计,例如领域建模.需要高 ...

  9. 应聘.net开发工程师常见的面试题(四)

    1.在Asp.net中所有的自定义用户控件都必须继承自________? 答:Control. 2.在.Net中所有可序列化的类都被标记为_____? 答:[serializable] 3.在.Net ...

  10. (转载)c语言指针学习

    前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水, ...