Validator.IsValid 即使值无效也为真

Validator.IsValid is true even when value is invalid

protected void dropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
    if (CompareValidatorInputTextBox1.IsValid && CompareValidatorInputTextBox2.IsValid) 
    {

        foo();
        blah();
    }
}

您好。我试图只将数字放入两个框中。在页面上,验证器显示告诉我非数字无效。但是,当我在选择操作后尝试使用这些值时,isValid 属性 始终为 true,即使 textBox 验证器说它无效。我是 asp.net 的新手,所以我有点困惑。

这是我的 .aspx 文件中的文本框之一:

<asp:TextBox ID="inputTextBox1" runat="server" />
<asp:CompareValidator 
    ID="CompareValidatorInputTextBox1" 
    runat="server"
    ControlToValidate="inputTextBox1"
    CausesValidation="True"
    operator="DataTypeCheck"
    Type="Double"
    ErrorMessage="Invalid Number"
    ForeColor="Red"
    ></asp:CompareValidator><br />

感谢您提供的任何帮助。

您可以通过在每个验证器上调用验证方法来强制调用验证:

protected void dropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
    CompareValidatorInputTextBox1.Validate();
    CompareValidatorInputTextBox2.Validate();
    if (CompareValidatorInputTextBox1.IsValid && CompareValidatorInputTextBox2.IsValid) 
    {
        foo();
        blah();
    }
}

然而,当我尝试重现您的问题时,在我的代码中调用了验证器。也许您在某些控件上设置了一些验证组...