验证控件为我们开发人员省了不少的工作,但是也存在着不少问题,比如灵活度不够,一个页面如果存在多个表单的话,就无法同时都用验证控件。
本文通过设置验证控件的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属性了,如果没有“;” 脚本就连在一起自然就报错了。