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. MongoDB让人恶心的配置

    dbpath.logpath必须指定到硬盘的根目录: dbpath=D:\data\dblogpath=D:\data\log\Mongodb.log 不然启动时会报没有设置dbpath的错误

  2. Zookeeper全解析——Paxos作为灵魂

    原文地址: http://www.spnguru.com/2010/08/zookeeper%E5%85%A8%E8%A7%A3%E6%9E%90%E2%80%94%E2%80%94paxos%E7% ...

  3. 【转载】总结一下Android中主题(Theme)的正确玩法

    http://www.cnblogs.com/zhouyou96/p/5323138.html 总结一下Android中主题(Theme)的正确玩法 在AndroidManifest.xml文件中有& ...

  4. Java算法实例集合

    这里是princeton搜集的算法课程Java示例.包括超过了100 Java个算法程序源码.Javadoc和测试数据.点击这里查看.

  5. JS知识点备忘

    做前端久了,会发现很多比较杂的知识点,平时很少用到(往往在面试的时候经常见到),但是遇到的时候会很揪心...所以遇到的时候把它记录下来,但求有个印象,再次遇到时,可以在这里快速找到解决. 1.文档碎片 ...

  6. hibernate 使用C3P0数据源

    1.导入jar包: hibernate-release-4.3.5.Final/lib/optional/*.jar 2.增加配置: <!-- 配置 C3P0 数据源 --> <pr ...

  7. mysql 字符集设置查看

    1.列出MYSQL支持的所有字符集: SHOW CHARACTER SET; 2.当前MYSQL服务器字符集设置 SHOW VARIABLES LIKE 'character_set_%'; 3.当前 ...

  8. JSON数据格式以及与后台交互数据转换实例

    /* 作者:烟大阳仔 时间:20131013 介绍:主要了解一下json的格式,看看数据是怎么存储的 */ <!DOCTYPE html PUBLIC "-//W3C//DTD HTM ...

  9. MySQL计划任务(事件调度器)(Event Scheduler)

    http://www.cnblogs.com/c840136/articles/2388512.html https://dev.mysql.com/doc/refman/5.7/en/events- ...

  10. mod_rewrite模块详解

    mod_rewrite模块提供了一个基于规则的(使用正则表达式分析器的)实时转向URL请求的引擎. 支持每个规则可以拥有不限数量的规则以及附加条件规则的灵活而且强大的URL操作机制. 此URL操作可以 ...