Page.isValid检查整个页面,而不仅仅是选定的验证组

时间:2013-03-20 15:36:09

标签: c# asp.net vb.net

我的表单上有一些验证器,有两个不同的ValidationGroups

在提交表单之前,我只需检查ValidationGroup="main"控件是否有效 我尝试了以下方法:

Page.Validate("main");
if (Page.IsValid) 
//do something

它一直在返回false,我感到很疯狂。

在检查确切地看到哪个验证器失败之后,它看起来像是在一个不同的ValidationGroup的验证器上。

我怎样才能确保它只验证“主”组?

这是我的完整提交代码:(也许我正在检查失败的验证器是否错误?)但无论哪种方式我都会因为page.isvalid而变得虚假:(

Page.Validate("main");
            if ((Page.IsValid) && (user.userRole.Contains("9")))
                btnSubmit.Visible = true;
            else
            {
                foreach (BaseValidator valControl in Page.Validators)
                {
                    WebControl assControl = Page.FindControl(valControl.ControlToValidate) as WebControl;
                    if (valControl.IsValid)
                    {
                        //do something.

                    }
                    else
                    {
                        //do something.
                        lblMessage.Text = valControl.ToString();
                    }

                } 
                btnSubmit.Visible = false;
            }

1 个答案:

答案 0 :(得分:0)

请仔细阅读this。它说明了

  

Validate方法验证指定的验证组。后   在验证组上调用Validate方法,即IsValid方法   只有在指定的验证组和   导致页面发布到的控件的验证组   服务器有效。