验证控件为我们开发人员省了不少的工作,但是也存在着不少问题,比如灵活度不够,一个页面如果存在多个表单的话,就无法同时都用验证控件。
本文通过设置验证控件的tabIndex属性(当然也可以用别的属性)及少量的js代码实现对验证控件分组 ,这样就可以在一个多提交表达页面都使用验证控件了。
步骤1:拷贝下面代码到aspx页面
<
script language
=
"
javascript
"
>
var oldPage_Validators;
function SelectForValidator(tabIndex)
{
if ( typeof (oldPage_Validators) == " undefined " )
{
oldPage_Validators = Page_Validators;
}
result = new Array();
var j = 0 ;
for (i = 0 ;i < oldPage_Validators.length;i ++ )
{
if (oldPage_Validators[i].tabIndex == tabIndex)
{
result[j ++ ] = oldPage_Validators[i];
}
}
Page_Validators = result;
}
</ script >
var oldPage_Validators;
function SelectForValidator(tabIndex)
{
if ( typeof (oldPage_Validators) == " undefined " )
{
oldPage_Validators = Page_Validators;
}
result = new Array();
var j = 0 ;
for (i = 0 ;i < oldPage_Validators.length;i ++ )
{
if (oldPage_Validators[i].tabIndex == tabIndex)
{
result[j ++ ] = oldPage_Validators[i];
}
}
Page_Validators = result;
}
</ script >
步骤2:设置分组ID,做法是将同一个表单的验证控件tabIndex设置成一样的 比如都设置成1。
步骤3:设置提交按钮的onclick属性 如btnSave.Attributes["onclick"]="SelectForValidator(1);";这里的1表示该分组的ID,记住要加“;” 因为按钮本身已经有onclick属性了,如果没有“;” 脚本就连在一起自然就报错了。