ASP.NET ASP.NET 服务器控件的客户端验证
如果用户使用的浏览器支持动态 HTML (DHTML),则 ASP.NET 验证控件可以使用客户端脚本来执行验证。因为这种控件可以提供及时反馈(无需到服务器的往返过程),所以用户会感觉到页的性能有所改善。
在大多数情况下,无需对页或验证控件作出任何更改便可使用客户端验证。控件将自动检测浏览器是否支持 DHTML 并执行相应的检查。客户端验证使用的错误显示机制和服务器端验证相同。
一、客户端验证的差异
如果是在客户端上执行验证,则验证控件可以包括某些附加功能:
·如果打算生成验证错误信息摘要,您可以在消息框中显示这些信息,该框在用户提交页时出现。
·验证控件的对象模型在客户端略有不同。
客户端验证具有以下几个细微不同之处:
·如果启用客户端验证,则页将包含对执行客户端验证所用的脚本库的引用。
·使用 RegularExpressionValidator 控件时,如果可以使用兼容 ECMAScript 的语言(例如 Microsoft JScript),则可以在客户端检查表达式。客户端正则表达式检查与在服务器上使用 Regex 类进行的正则表达式检查相比,两者的差异非常小。
·页中包含客户端方法,以便在页提交前截获并处理 Click 事件。
二、客户端验证对象模型
验证控件在客户端上呈现的对象模型与在服务器上呈现的对象模型几乎完全相同。例如,无论在客户端上还是在服务器上,您都可以通过相同的方式读取验证控件的 IsValid 属性以测试验证。
但是,在页级别上公开的验证信息有所不同。在服务器上,页支持属性;在客户端,它包含全局变量。下表比较了在页上公开的信息。
客户端页变量
服务器页属性
Page_IsValid
IsValid
Page_Validators(数组) 包含对页上所有验证控件的引用。
Validators(集合) 包含对所有验证控件的引用。
Page_ValidationActive 表示是否应进行验证的布尔值。通过编程方式将此变量设置为 false 以关闭客户端验证。
(无等效项)
说明: 所有与页相关的验证信息都应被视为只读信息。
三、发送具有客户端验证错误的页
在某些情况下,您可能不愿意使用客户端验证而愿意仅使用服务器端验证,即使是可以使用客户端验证亦如此。例如,如果验证需要使用只有服务器才有的信息或资源(例如访问数据库),则客户端验证不可行。
默认情况下
相关文档:
javascript< script language="javascript"> < !-- function disableOtherSubmit() {
var obj = event.srcElement;
var objs = document.getElementsByTagName('INPUT');
for(var i=0; i< objs.length; i++)
{
if(objs[i].type.toLowerCase() == 'submit')
{
objs[i].disabled = true;
}
}
......
private void Button1_Click( object sender, System.EventArgs e ) { Response.Redirect( Request.Url.ToString( ) ); } 第二:
private void Button2_Click( object sender, System.EventArgs e ) { Response.Write( " < script language=javascript>window.location.href=document.URL; < /script>" ); } ......
因为服务器的性能有限,发现自从使用了 Castle + Nhibernate 之后,服务器在更新web站点之后的重新编译过程特别漫长,有时候都超过了1分钟,尽管发布的web程序也是编译好的。下面是web使用的动态库:
Castle.Core.dll
Castle.DynamicProxy2.dll
Castle.Facilities.AutomaticTransactionManagement.dll
Castle.Facilities ......
1、数据控件(如DataGrid/DataList等控件)格式化日期方法:
e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();
//指定列(第1列)格式化日期
2、用String类转换日期显示格式:
String.Format( "yyyy-MM-dd ",yourDateTime);
3、用Convert方法转换日期显示格式:
Convert.ToDat ......
使用验证组可以将页面上的验证控件归为一组。可以对每个验证组执行验证,该验证与同一页的其他验证组无关。
将要分组的所有控件的 ValidationGroup 属性设置为同一个名称(字符串)即可创建验证组。可以为验证组分配任何名称,但必须对该组的所有成员使用相同的名称。
在回发过程中,只 ......