2015-01-15 2 views
0
protected void dropDownList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (CompareValidatorInputTextBox1.IsValid && CompareValidatorInputTextBox2.IsValid) 
    { 

     foo(); 
     blah(); 
    } 
} 

안녕하세요. 나는 두 개의 상자에 숫자만을 넣으려고합니다. 이 페이지에서 Validator는 비 숫자가 유효하지 않다는 것을 알려줍니다. 그러나 작업을 선택한 후 값을 사용하려고하면 isValid 속성은 항상 true입니다. 단, textBox 유효성 검사기가 유효하지 않다고하더라도 마찬가지입니다. 나는 asp.net에 익숙하지 않기 때문에 나는 약간 혼란 스럽다.Validator.IsValid는 값이 잘못된 경우에도 true입니다.

은 여기 내에서 .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

"작업을 선택한 후 값을 사용하려고 할 때"라는 것은 무엇을 의미합니까? – derape

+0

아, 그게 확실하지 않습니다. 나는 텍스트를 업데이트 할 것이다. 내가 말하고자하는 것은 최상위 코드 인 이벤트 핸들러에서 값을 사용하려고한다는 것입니다. 그러나 그들을 사용하려고 할 때 .aspx 페이지에서 유효하지 않더라도 Validator.IsValid 속성은 true입니다. –

+1

[MSDN] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basevalidator.isvalid (v = vs.110) .aspx) 설명서에 'Validate'메서드가 나와 있습니다. 'IsValid' 속성이 최신 상태로 호출되어야합니다. 이 코드를 검사 할 때이 작업이 완료되었다고 확신합니까? –

답변

2

각 검사기에 방법을 확인 호출하여 확인 전화를 강제 할 수

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

을하지만 내 코드에서 나는 유효성 검사기가 호출 된 문제를 재현하려고 할 때. 어쩌면 당신은 일부 컨트롤에 설정된 유효성 검사 그룹을 가지고있을 것입니다 ...

+0

몇 가지 유효성 검사 그룹이 있다고 생각하지 않습니다. 나는 아직도 이것에 익숙하지 않지만 CausesValidation = "true"에 영향을받을 것인가? 답장을 보내 주셔서 감사합니다. 위에서 언급 한 @MikeofSST와 동일하며 작동합니다. –

+0

아마도 드롭 다운 목록에 CausesValidation = "true"를 설정하지 않았을 것입니다. 내가 아는 한 - 그것은이 깃발이 없어서 생길 수 있습니다. 그러나이 플래그가 기본적으로 true가 아닌지 확실하지 않습니다. 때로는 어떤 것들은 제대로 작동하지 않으므로 유효성 검사를 강제하지 않는 것이 좋지 않습니다. – Landeeyo

관련 문제