2010-01-07 7 views
3

다음과 같은 매우 간단한 사용자 컨트롤이 있습니다.특정 위치에 사용자 컨트롤 어린이를 렌더링하려면 어떻게해야합니까?

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="wfWindow.ascx.cs" Inherits="webfanatix.co.za.wfWindow" %> 
<div>Just a test...[x]</div> 

뒤에이 코드가 포함 된 경우 :

[ParseChildren(false)] 
[PersistChildren(true)] 
public partial class wfWindow : System.Web.UI.UserControl 
{ 
    protected override void Render(HtmlTextWriter writer) 
    { 
     RenderChildren(writer); 
    } 
} 

ASP.NET 프로가 없으므로 사용자 컨트롤에서 [x]가 나타나는 위치를 정확하게 렌더링하는 콘텐트를 얻으려면 어떻게해야합니까?

RenderChildren이 내 콘텐트를 렌더링하고 있지만 UserControl 출력의 끝 부분에만 추가됩니다. [x]가 그 자리를 차지하는 곳으로 가야합니다.

미리 감사드립니다!

+0

PHP로 이러한 종류의 동작을 구현하는 것은 간단합니다. –

답변

1

구현 내용을 어디에 넣을 지 결정하려면 templated user controls을 살펴보십시오.

그렇지 않으면, 자리 표시 자 컨트롤을 사용하고 AddParsedSubObject 방법을 같은 자리 또는 패널과 같은 다른 컨트롤을 보유 할 수 그것의 자신의 제어에

2

변경 [X]를 우선합니다.

그런 다음 AddParsedSubObject()을 무시하십시오. 이것의 기본 구현은 컨트롤을 사용자 정의 컨트롤의 Controls 컬렉션에 추가하기 만하면 결국 컨트롤이 추가됩니다. 이것을 재정의하여 자리 표시 자에 추가하십시오.

protected override void AddParsedSubObject(Object obj) 
    { 
     PanelWhereXIs.Add(obj); 
    } 
관련 문제