即使值无效,Validator.IsValid也为true

时间:2015-01-15 15:07:50

标签: c# asp.net

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

        foo();
        blah();
    }
}

您好。我想把数字分成两个盒子。在页面上,Validator显示告诉我非数字无效。但是,当我尝试在选择操作后使用这些值时,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 />

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:2)

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

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

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