2012-08-22 4 views
1

사용자 지정 복합 컨트롤을 설계했습니다. 단순화하기 위해,의 그것과 같다 가정 해 봅시다 : 사용자 지정 복합 컨트롤의 RequiredFieldValidators

Public Class MyCustomControl 
    Inherits CompositeControl 

Private _textbox As TextBox 

Public Property Text As String 
    Get 
     EnsureChildControls() 
     Return _textbox.Text 
    End Get 
    Set(value As String) 
     EnsureChildControls() 
     _textbox.Text = value 
    End Set 
End Property 

Protected Overrides Sub CreateChildControls() 
    _textbox = New TextBox() With {.ID = "textbox"} 
    Controls.Add(_textbox) 
End Sub 

가 지금은 MyCustomControl의 소비자 양식은 (클라이언트에) 제출할 때 내부 _textbox가 작성되어 있는지 확인하기 위해 RequiredFieldValidator을 사용할 수 있도록 노력하고 있습니다.

내가 시도 일 : MyCustomControl 클래스에

  • 추가 <ValidationProperty("Text")>을하고 RequiredFieldValidatorControlToValidate="customControlID"을 사용
  • 가 직접 ControlToValidate="customControlID_textbox"
  • 추가 한뿐만 아니라 ControlToValidate="customControlID:textbox"를 통해 검증을 첨부 (here 참조) IsRequired이라는 속성이 MyCustomControl으로 지정되어 있으며 자식 컨트롤로 자신의 RequiredFieldValidator을 추가합니다. .ControlToValidate = _textbox.ID

세 번째 접근 방식이 작동하는 것으로 보입니다 (아직 조사하지 않은 일부 자바 스크립트 오류가 있음). 그러나 실제로는 첫 번째 접근 방식을 사용하려고합니다 (ValidationProperty 속성 사용).

TLDR : ValidationProperty 특성을 사용하여 사용자 지정 복합 컨트롤에서 클라이언트 쪽 유효성 검사를 수행 할 수있는 방법이 있습니까?

답변

1

코드는 ValidationProperty 특성으로 작동합니다 (VS 2010을 실행하는 단순화 된 버전 이상). 필드가 유효하지 않을 때 메시지가 실제로 표시되도록 RequiredFieldValidator의 Text 속성을 정의했는지 확인하십시오. 검증 개요에 대해 의견을 바탕으로

편집 :

당신의 ValidationGroup 속성이 설정되어 확인 (같은) 당신의 RequiredFieldValidator,의 ValidationSummary뿐만 아니라, 다시 게시물을 해고 제어합니다.

+0

나는'RequiredFieldValidator'의'ErrorMessage' 속성과 함께 오류를 표시하기 위해'ValidationSummary'를 사용하고 있습니다. 페이지를 제출할 때 텍스트 상자의 값에 관계없이 진행됩니다. – jbabey

+0

이 SO 링크를 참조하십시오. 문제가 될 수 있습니다. http://stackoverflow.com/questions/9677883/validation-summary-not-showing – N0Alias

+0

일반'InputField에 동일한 'RequiredFieldValidator'를 사용하면 유효성 검사 요약이 올바르게 작동합니다 복합 컨트롤을 사용하지 않고 type = "text"'상자에 입력하십시오. – jbabey

관련 문제