Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展Asp.net CompareValidator_Asp.net_Validation - Fatal编程技术网

扩展Asp.net CompareValidator

扩展Asp.net CompareValidator,asp.net,validation,Asp.net,Validation,如何扩展compareValidator以便我可以检查,如果用户在ControlToValidate中写入了一些文本,那么他也必须在ControlToCompare中写入一些文本。尝试: public class ExtendedCompareValidator : CompareValidator { protected override void OnPreRender(EventArgs e) { if (!string.IsNullOrEmpty(thi

如何扩展compareValidator以便我可以检查,如果用户在ControlToValidate中写入了一些文本,那么他也必须在ControlToCompare中写入一些文本。

尝试:

public class ExtendedCompareValidator : CompareValidator
{

    protected override void OnPreRender(EventArgs e)
    {
        if (!string.IsNullOrEmpty(this.ControlToValidate) && string.IsNullOrEmpty(this.ControlToCompare))
            throw new HttpException("You have to set the 'ControlToCompare' property.");

        base.OnPreRender(e);
    }

}
Web.Config

<pages>
  <tagMapping>
    <add tagType="System.Web.UI.WebControls.CompareValidator, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mappedTagType="MyWebApp.ExtendedCompareValidator, MyWebApp"/>
  </tagMapping>
</pages>


您不需要扩展
CompareValidator
来解决此问题。在两个控件上使用
RequiredFieldValidator
,验证它们是否为空。这种方法的优点是在客户端进行验证,从而避免了到服务器的往返

我将如何使用这个验证器?你不需要改变任何事情。使用传统的
CompareValidator
控件,ASP.NET将其与新控件进行映射。不,它不起作用。它具有与普通CompareValidator控件相同的行为。您是否已将上述代码段添加到web.config的
页面
部分?另外,不要忘记更改
mappedTagType
属性。