set validatorcontrol.SetFocusOneError=";“真的”;用于asp.net网站中的所有验证程序控件

set validatorcontrol.SetFocusOneError=";“真的”;用于asp.net网站中的所有验证程序控件,asp.net,Asp.net,我们即将发布我们网站的测试版。最近我们看到开发人员没有在使用的任何validaor控件上设置SetFocusOneError。我们必须设置此属性 现在,一个解决方案是打开每个页面并将此属性放置到位。我正在寻找其他一些方法,比如web.config中的一些配置或其他一些快速解决方案 我有用户控件和页面。页面从基本页面派生。请建议。在基本页面上的页面加载事件中循环所有页面控件并执行此操作。在本例中,将页面传递给SetValidationControls protected void SetValid

我们即将发布我们网站的测试版。最近我们看到开发人员没有在使用的任何validaor控件上设置SetFocusOneError。我们必须设置此属性

现在,一个解决方案是打开每个页面并将此属性放置到位。我正在寻找其他一些方法,比如web.config中的一些配置或其他一些快速解决方案


我有用户控件和页面。页面从基本页面派生。请建议。

在基本页面上的页面加载事件中循环所有页面控件并执行此操作。在本例中,将页面传递给SetValidationControls

protected void SetValidationControls(Control control)
{
   foreach(Control ctrl in control.Controls)
   {
       if(ctrl is System.Web.UI.WebControls.RequiredFieldValidator)
       {  
             RequiredFieldValidator req = (RequiredFieldValidator)ctrl;
             req.SetFocusOnError = true;

       }
       else if (ctrl is System.Web.UI.WebControls.RegularExpressionValidator)
       {
             RegularExpressionValidator reg = (RegularExpressionValidator)ctrl;
             reg.SetFocusOnError = true;

       }
       else if (ctrl.Controls.Count > 0)
            SetValidationControls(ctrl);
   }
}

依此类推。

您可以创建一组从ASP.NET提供的验证器派生的验证器,并使用这些验证器。这允许您对它有更多的控制,并在应用程序范围内进行更改,例如,通过使用themes&skins文件

例如,当使用
RequiredFieldValidator
时,可以覆盖它并添加新的主题表属性,如下所示:

public class CustomRequiredFieldValidator : RequiredFieldValidator
{
    [ToolboxItem(true), Themeable(true), Category("Appearance")]
    public bool FocusOnError
    {
        get { return this.SetFocusOnError; }
        set { this.SetFocusOnError = value; }
    }
}
在皮肤文件中,您可以定义
CustomRequiredFieldValidator
的默认实例

<myOwn:CustomRequiredFieldValidator runat="server" FocusOnError="True" />

现在,web应用程序中的所有
CustomRequiredFieldValidator
实例都将设置其
setFocusOneError
属性