2009-11-12 5 views
0

DateValidator 컨트롤을 작성하여 날짜에 대한 모든 유형의 유효성 검사기로 작동합니다.ASP.NET 사용자 지정 서버 컨트롤 빌드 유효성 검사기

클라이언트 측에서 날짜 비교를 위해 Required 유효성 검사기, 최소/최대 유효성 검사기 및 범위 검사기로 작동합니다.

전체적으로 필자는 ASPX 페이지에서 다음과 같이 쓰고 작동합니다.

어떤 이유로 ASCX 사용자 정의 컨트롤에 추가하여 템플릿으로 사용할 때 필요한 <span> 태그를 렌더링하지 않으므로 유효성 검사를 계속하기 전에 컨트롤이 있는지 확인하기 위해 JavaScript null 참조가 생성됩니다.

내 클래스는 BaseValidator을 상속하므로 출력을 수정할 필요가 없으므로 override RenderChildControls이 아닙니다. 내 사용자 정의 javascript를 추가하려면 컨트롤에 RegisterExpandoAttributesOnPreRender 메서드를 사용합니다. 그러나 컨트롤 (span 태그)이 렌더링되지 않으므로 ASCX에서이를 실행할 수 없습니다.

누구에게도이 문제가 발생 했습니까? 그렇다면 해결 방법은 무엇입니까?

편집 :

확인, 3 개의 다른 시간 후, 나는이없는 매우 중요한 선을 발견했습니다

: ASPX 페이지 내에서 실행하면, 이것은 HTML에 나타납니다 :

<script type="text/javascript"> 
//<![CDATA[ 
var Page_ValidationSummaries = new Array(document.getElementById("cal")); 
var Page_Validators = new Array(document.getElementById("valTest")); 
//]]> 
</script> 

그러나 때 ASPX에 ASCX 사용자 컨트롤에 : 당신이 볼 수 있듯이

<script type="text/javascript"> 
//<![CDATA[ 
var Page_ValidationSummaries = new Array(document.getElementById("uc1_cal")); 
//]]> 
</script> 

만 유효성 검사 요약 인식되고 있으며 내 직접 CustomValidator 클래스에서 상속하지 BaseValidator. 내가 왜 문제를 해결할 수 있는지 알아낼 수 있다면. 실망. 당신이 템플릿를 사용하는 경우 InstantiateIn() 메서드를 호출

+1

필요한 span 태그가 생성 된 코드 스 니펫을 추가 할 수 있습니까? – David

+0

그게 내가 말하는거야. BaseValidator는 SPAN 태그의 렌더링을 처리합니다. 합성 컨트롤을 만들 때 RenderChildControls를 일반처럼 재정의 할 필요가 없습니다. SPAN 태그는 기본값으로 렌더링되므로 출력 HTML을 수정할 필요가 없습니다. – Jonathan

답변

0

....

+0

ASCX 컨트롤은 계속해서 다시 사용할 수있는 템플릿으로 사용됩니다. 그것은 ITemplate을 구현하지 않습니다. – Jonathan

1

은 아마 당신은 Excentrics World's free calendar popup을 사용하는 것이 좋습니다. 나는 그것이 당신이 묘사 한 모든 기능을 가지고 있고 그것이 이미 구축되어 있다고 생각합니다.

+1

저는 회사의 완벽한 컨트롤 세트를 구축하고 있습니다. 이것은 약 50 명 중 하나 일뿐입니다. 나는 회사를 위해 비용을 절감하고, 오픈 소스이며, 문서화가 잘되고, 상대적으로 수정하기 쉽도록 그들을 구축하고 있습니다. – Jonathan

관련 문제