2009-02-04 2 views
2

RequiredFieldValidator도 포함하는 사용자 지정 TextBox 컨트롤을 만들었습니다. 모든 것이 잘 작동하지만 문제가 표시됩니다.사용자 지정 TextBox 컨트롤 및 유효성 검사 디스플레이

[TextBox Control] [Validation Error Message] 

내가 디스플레이 이런 식으로 뭔가되고 싶은 : 디스플레이는이 같은 것입니다로부터

[Validation Error Messsage] 
[TextBox Control] 

내 제어 상속 (유효성 검사 오류 메시지가 텍스트 상자의 상단에 있어야한다) TextBox 컨트롤입니다. 위와 같은 디스플레이를 어떻게 만들 수 있습니까? 나는 테이블 컨트롤을 사용하고 테이블 안의 TextBox와 Validation 컨트롤을 삽입하려했지만, 어떤 종류의 스택 오버 플로우 에러를 보였다. 당신이 바로 그 일을 정말 가까이있어

protected override void Render(System.Web.UI.HtmlTextWriter writer) 
     { 
      if (_req != null) 
      { 
       writer.Write("<div style='float:top;'>"); 
       _req.RenderControl(writer); 
       writer.Write("</div>"); 
      } 

      base.Render(writer); 
     } 
+0

ValidationErrorMessage는 TextBox의 맨 위에 있어야합니다! – azamsharp

+0

Render 메서드에서 코드를 첨부 할 수 있습니까? – bendewey

+0

질문에 정보를 추가하는 경우 질문을 편집해야합니다. – bendewey

답변

3

다음은 추한 솔루션입니다

protected override void Render(System.Web.UI.HtmlTextWriter writer) { 
    base.Render(writer); 

    if(_req != null) 
     _req.RenderControl(writer); 
} 
0

: 여기

코드입니다! 시도해보십시오.

protected override void Render(System.Web.UI.HtmlTextWriter writer) 
{ 
    if(_req != null) 
     _req.RenderControl(writer); 
    base.Render(writer); 
} 

그러면 TextBox 앞에 유효성 검사 컨트롤이 렌더링됩니다. 모양을 더 변경하려면 CSS를 사용하는 것이 좋습니다.

+0

기술적으로 float top은 실제로 아무 것도하지 않습니다. 이것이 작동하는 이유는 base를 호출하기 때문입니다. _req.RenderControl 이후에 렌더링해야합니다. – bendewey

+0

그 위에 표시되는 이유는 div의 기본 동작이 display : block이기 때문입니다. – bendewey

+1

마침내 질문에 대한 답변을 게시 할 수 있지만 코드 샘플과 같은 업데이트를 게시해서는 안됩니다. 원래 질문을 수정해야합니다. 질문을 업데이트 한 다음 첫 번째 대답을 삭제할 수 있습니까? – bendewey