2010-06-10 7 views
2

코드 숨김 문자열에서 웹 페이지의 asp.net 컨트롤을 렌더링하는 방법은 무엇입니까? 내가 사업부에 텍스트 상자를 렌더링 내 Page_Load 이벤트에서 무엇을 할 수 있는지동적으로 컨트롤을 렌더링하는 방법은 무엇입니까?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="nrm.FRGPproposal.Questionnaire1" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     //want to render a text box here 
    </div> 
    </form> 
</body> 
</html> 

: 예를 들어

, 나는 아래의 aspx 페이지가 있다고?

protected void Page_Load(object sender, EventArgs e) 
{ 
    //what do i do here to render a TextBox in the div from the aspx page? 
} 

답변

2

여기에는 컴파일 문제가있을 수 있습니다. 하지만 기본적으로 앞에있는 코드에 자리 표시 자 컨트롤을 추가하십시오.
<퍼센트 @ 페이지 언어 = "C#을"으로 AutoEventWireup = "true"를 숨김 = "하여 default.aspx.cs"상속 = "nrm.FRGPproposal.Questionnaire1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:placeholder id="placeHolder" runat="server"/> 
    </div> 
    </form> 
</body> 
</html> 

그런 다음 코드에서 텍스트 상자를 만들 프로그래밍 방식으로 텍스트 상자를 가져 오려면 System.Web.UI를 포함해야합니다. 그런 다음 컨트롤을 placeHolder의 controls 컬렉션에 추가합니다. 프로그래밍

protected void Page_Load(object sender, EventArgs e) 
{ 
    TextBox tb = new TextBox(); 
    placeHolder.Controls.Add(tb); //tb is referring to the name that you want to name your element. in this example given was TextBox. so the name of text box is tb. 

} 
+0

@Tehrab는 페이지 초기화가 아니라 페이지 초기화와 같은 이전 라이프 사이클 순간에 가장 잘 수행됩니다. –

+0

"System.Web.UI.WebControls.TextBox"와 같은 문자열에서 수행하는 것처럼 새 TextBox 객체를 만드는 방법을 알고 있습니까? –

+0

div 안에있는 일부 문자열의 중간에 병합 된 텍스트 상자를 추가 할 수 있기를 원하십니까? 마찬가지로 "Enter Name [System.Web.UI.WebControls.TextBox]"문자열이 있고 "[System.Web.UI.WebControls.TextBox]"를 TextBox 컨트롤로 렌더링하려고한다고 가정하십시오. –

0

텍스트 상자에 원하는 당신은 또한 포스트 백 컨트롤 '상태/값을 읽으려면 Page_Init 방법의 컨트롤을 다시 작성해야합니다 어떤 속성을 설정합니다.

protected void Page_Init(object sender, System.EventArgs e) 
{ 
    TextBox tb = new TextBox(); 
    placeHolder.Controls.Add(); 
} 
2

쉬운.

당신 div 요소에 두 개의 속성을 추가 : 다음 <div runat="server" id="myDiv"></div>

TextBox tb = new TextBox(); 
    this.myDiv.Controls.Add(tb); 

당신이

MyUserControl control = (MyUserControl)Page.LoadControl("~/My_VirtualPathToControl"); 
    this.myDiv.Controls.Add(control); 

(당신은 등록해야 위의 코드를 사용할 수있는 사용자 지정 UserControl을 렌더링하려면 aspx 파일에서 귀하의 컨트롤)

잉크. Page_Load 이벤트에서 코드를 실행할 때주의하십시오.

관련 문제