2009-08-30 2 views
0

컨트롤을 동적으로 만들고 페이지의 컨트롤 컬렉션에 추가하면 다음 오류가 발생합니다. 무슨 일이야? 페이지에 컨트롤을 동적으로 추가하려면 어떻게합니까? 당신은 페이지에 양식이없는동적으로 생성 된 컨트롤을 ASP에 추가하려고하면 오류가 발생합니다.

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 
    double total = (double)ViewState[cKeyTotal]; 
    TextBox txt = new TextBox(); 
    txt.Text = "hello world"; 

    this.Controls.Add(txt); 
} 

답변

0

:

Control 'ctl02' of type 'TextBox' must be placed inside a form tag with runat=server. 

내가 좋아하는 일을하고 있어요. 그 통제는 내부에 있어야합니다.

는 양식을 추가

<form runat='server' id='form1'> 
    ... 
</form> 

그리고 인생이 잘되어야합니다.

+0

나는 이해할 수 없다. 나는 표준 Default.aspx의 codebehind에서 일하고 있는데 당신이 위에서 쓴 html을 가지고있다. 뭔가 다른 것이 누락되었습니다 – MedicineMan

+1

알겠습니다. 문제는 this.Controls.Add()가 컨트롤을 form1에 추가하지 않는다는 것입니다. 위 코드를 form1.Controls.Add()로 변경하면 모든 것이 행복합니다. – MedicineMan

관련 문제