2012-01-26 3 views
1

DB에 바인딩 된 DropDownList가 있습니다. 또한 수동으로 "(기타)"항목을 추가합니다.asp.net CustomValidator 서버 측에서 내 프로그램을 중지하지 않습니까?

사용자가 "(기타)"를 선택하면 JQuery가 실행되고 사용자가 무언가를 입력해야하는 .Show() 숨겨진 <asp:TextBox>을 입력해야합니다.

이 TextBox의 유효성을 검사하려고합니다. 난 그냥 클라이언트 측을 사용하여 숨어있어 이후 물론,의 RequiredFieldValidator + RegularExpressionValidator 그래서 내가 매우 익숙하지 해요 직접 CustomValidator 시도 사용할 수 없습니다 내 영문에서 다음

protected void validatorOther(object sender, ServerValidateEventArgs e) 
{ 
    if (dropdownVisitorType.SelectedItem.ToString() == "(other)") 
    { 
     e.IsValid = (textboxOtherVisitorType.Text != ""); 
    } 
} 

protected void buttonRegister_Click(object sender, EventArgs e) 
{ 
    //a whole bunch of code here... 
} 

<asp:CustomValidator runat="server" id="validatorOtherVisitorType" ValidateEmptyText="true" onservervalidate="validatorOther" errormessage="*" /> 

디버그하려고하면 e.IsValidfalse을 성공적으로 반환합니다. 그러나, 내 웹 페이지는 그것을 무시하고 어쨌든 진행하여 유효성 검사기를 쓸모 없게 만듭니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

3

당신은 등록 버튼을 클릭에 검증을 강제해야

this.Page.Validate(); 
if (this.Page.IsValid) 
{ 
// your registration logic. 
} 
+0

이 내가 필요 정확히이었다. 완벽하게 작동합니다! – Baxter