2010-02-19 6 views
0

나는 사용자 지정 ASP.NET 서버 컨트롤을 작성하는 새로운 해요, 나는 다음과 같은 문제가 발생 해요 : 나는 System.Web.UI.HtmlControls.HtmlGenericControl에서 상속 제어 할 수 있습니다ASP.NET 서버 컨트롤 발광 서버 측 태그

합니다. 컨트롤의 Render 메서드를 재정의하고 HtmlTextWriter을 사용하여 사용자 지정 HTML (기본적으로 일부 사용자 지정 특성이있는 TD 태그)을 내 보낸 다음 사례 클래스의 Render 메서드를 호출합니다.

컨트롤을 사용 :

<dc:Header id="header1" runat="Server" DataColumn="MemberNumber" Width="30%">Member Number</dc:Header > 

문제는 내 렌더링 된 HTML을 볼 때, 서버 태그뿐만 아니라 (오른쪽 TD 태그 이후) 클라이언트로 방출되는 것입니다 :

<dc:Header id="ctl00_ContentPlaceHolder_testData1_testData1_header1">Member Number</dc:Header> 

어떻게 이런 일이 일어나지 않도록 할 수 있습니까?

+0

Render 메서드를 게시 할 수 있습니까? – Ray

답변

2

기본 렌더링 방법은 RenderBeginTagRenderEndTag()의 태너 메임을 내고 있습니다. 사용자가 직접 렌더링하는 경우 기본 렌더링 메서드를 호출하지 마십시오. 또한 도움이 필요하면 HtmlGenericControl을 상속받지 않으며 WebControl 속성 중 하나도 필요하지 않더라도 WebControl 또는 Control에서 상속합니다.

protected override void Render(HtmlTextWriter writer) 
{ 
    RenderBeginTag(writer); 
    RenderContents(writer); 
    RenderEndTag(writer); 
} 

만큼 당신이 당신의 경우에, 당신이 필요 아마 RenderContents() 전화로, 필요 base.Render(writer) 방법을 문의하기 위해 :이

정상 Render() 방법은 않습니다.

HtmlGenericControl을 계속 덮어 쓰려면 TagName property을 설정해야합니다.

+0

완벽하게 작동합니다. 설명해 주셔서 감사합니다. – staterium

관련 문제