根据验证控件的TabIndex这个几乎没有用的属性来分组
页面Javascript脚本:
<script language="javascript">
function hideOldValidatorDisplay()
{
var i;
for (i = 0; i < Page_Validators.length; i++)
{
var val = Page_Validators[i];
if (typeof(val.display) == "string")
{
if (val.display == "None")
{
return;
}
}
if (val.display == "Dynamic")
{
val.style.display = "none";
return;
}
val.style.visibility = "hidden";
}
}
var oldPage_Validators;
function selectForValidator(tabIndex)
{
if(typeof(oldPage_Validators) == "undefined")
{
oldPage_Validators = Page_Validators;
}
result = new Array();
for(i = 0;i < oldPage_Validators.length; i++)
{
if(oldPage_Validators[i].tabIndex == tabIndex)
{
result[result.length] = oldPage_Validators[i];
}
}
hideOldValidatorDisplay();
Page_Validators = result;
}
</script>
function hideOldValidatorDisplay()
{
var i;
for (i = 0; i < Page_Validators.length; i++)
{
var val = Page_Validators[i];
if (typeof(val.display) == "string")
{
if (val.display == "None")
{
return;
}
}
if (val.display == "Dynamic")
{
val.style.display = "none";
return;
}
val.style.visibility = "hidden";
}
}
var oldPage_Validators;
function selectForValidator(tabIndex)
{
if(typeof(oldPage_Validators) == "undefined")
{
oldPage_Validators = Page_Validators;
}
result = new Array();
for(i = 0;i < oldPage_Validators.length; i++)
{
if(oldPage_Validators[i].tabIndex == tabIndex)
{
result[result.length] = oldPage_Validators[i];
}
}
hideOldValidatorDisplay();
Page_Validators = result;
}
</script>
//-----------------------------------------------
CodeBehind代码:
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
//验证TabIndex为15的验证控件
this.lbtnSubmit.Attributes["onclick"]="selectForValidator(15);";
//验证未设TabIndex,即TabIndex=0的验证控件
this.btnSubmit.Attributes["onclick"]="selectForValidator(0);";
}
}
protected bool ValidateGroup(Int16 validatorTabIndex)
{
bool isInputValid = true;
BaseValidator baseVal;
foreach(IValidator valCtl in Validators)
{
baseVal = (BaseValidator)valCtl;
baseVal.IsValid = true;
if(baseVal.Enabled && baseVal.Visible && baseVal.TabIndex == validatorTabIndex)
{
valCtl.Validate();
isInputValid = isInputValid && valCtl.IsValid;
}
}
return isInputValid;
}
private void lbtnSubmit_Click(object sender, System.EventArgs e)
{
bool isPageValid = ValidateGroup(15);
if(isPageValid) Response.Write("Valid");
}
private void btnSubmit_Click(object sender, System.EventArgs e)
{
bool isPageValid = ValidateGroup(0);
if(isPageValid) Response.Write("Valid");
}
{
if(!Page.IsPostBack)
{
//验证TabIndex为15的验证控件
this.lbtnSubmit.Attributes["onclick"]="selectForValidator(15);";
//验证未设TabIndex,即TabIndex=0的验证控件
this.btnSubmit.Attributes["onclick"]="selectForValidator(0);";
}
}
protected bool ValidateGroup(Int16 validatorTabIndex)
{
bool isInputValid = true;
BaseValidator baseVal;
foreach(IValidator valCtl in Validators)
{
baseVal = (BaseValidator)valCtl;
baseVal.IsValid = true;
if(baseVal.Enabled && baseVal.Visible && baseVal.TabIndex == validatorTabIndex)
{
valCtl.Validate();
isInputValid = isInputValid && valCtl.IsValid;
}
}
return isInputValid;
}
private void lbtnSubmit_Click(object sender, System.EventArgs e)
{
bool isPageValid = ValidateGroup(15);
if(isPageValid) Response.Write("Valid");
}
private void btnSubmit_Click(object sender, System.EventArgs e)
{
bool isPageValid = ValidateGroup(0);
if(isPageValid) Response.Write("Valid");
}