2008-11-14 2 views

답변

0

빈 페이지에 컨트롤을 추가하는 경우 Page.Controls.Add() .... no? 페이지가 MasterPage에서 상속하는 경우

+0

미안하지만 실제 내용이 채워지는 것을 생략했습니다. 실제 컨트롤이 생성되지 않았습니다. – Anders

+0

구체적인 내용이 가득 찼습니까? 원시 html 또는 텍스트? –

+0

텍스트 만, contentplaceholder – Anders

4

, 당신은 ASP가 있어야 : 콘텐츠 컨트롤을 페이지에 어떤 ID로,과 같이 :

<asp:Content runat="server" ID="myContent" ContentPlaceHolderID="masterContent"> 
</asp:Content> 

당신은 당신의 코드 숨김이를 참조하고 추가 할 수 있어야 네가 원하는대로.

public void Page_Load(object sender, EventArgs e) 
{ 
    HtmlContainerControl div = new HtmlGenericControl("DIV"); 
    div.innerHTML = "....whatever..."; 
    myContent.Controls.Clear(); 
    myContent.Controls.Add(div); 
} 
+0

외부에 서식 지정 HTML이 있는지 확인합니다. – Shawn

+0

나는 이것이 오래되었다는 것을 알고 있지만 기술적으로 새로운 HtmlGenericControl ("div")이어야하며 HtmlContainerControl은 추상적이어서 만들 수 없다 ("div"변수를 그 유형으로 형변환 할 수 있음). – McGuireV10

+0

@ McGuireV10 - 고마워요. 나는 웹 폼을 남겨 두었던 것을 매우 기쁘게 생각합니다. – tvanfosson

0

나는 컨트롤 (예를 들어 자리 표시 자) 재귀 적으로 당신이 ID를 기준으로 찾고있는 컨트롤을 찾아서 반환을 검색하는 사용자 정의 확장 방법을 사용합니다. 그런 다음 필요에 따라 반환 된 컨트롤을 채울 수 있습니다. foreach 루프에서 this를 호출하여 채울 컨트롤 목록을 반복합니다.

public static class ControlExtensions 
{ 
    /// <summary> 
    /// recursive control search (extension method) 
    /// </summary> 
    public static Control FindControl(this Control control, string Id, ref Control found) 
    { 
     if (control.ID == Id) 
     { 
      found = control; 
     } 
     else 
     { 
      if (control.FindControl(Id) != null) 
      { 
       found = control.FindControl(Id); 
       return found; 
      } 
      else 
      { 
       foreach (Control c in control.Controls) 
       { 
        if (found == null) 
         c.FindControl(Id, ref found); 
        else 
         break; 
       } 

      } 
     } 
     return found; 
    } 
} 
+0

C# 코드에 사과드립니다. vb 태그가 없습니다. – flesh