2009-08-24 3 views
0

asp.net의 데이터베이스 레코드 수에 따라 동적으로 텍스트 상자를 만들 수 있습니까? 예 : 학생의 시험 점수를 입력 할 수있는 학교 프로그램이 있으며 학교에도 수업이 있습니다. 얼마나 많은 사람들이 있는지 모르고 시험 포인트를 삽입하기 위해 동적으로 텍스트 상자를 만들어야합니다.동적으로 텍스트 상자를 만드는 방법은 asp.net의 데이터베이스 레코드 수에 따라 다릅니다.

답변

2

페이지 컨트롤, 패널 컨트롤 및 다른 여러 컨트롤에는 페이지에 새 컨트롤을 동적으로 추가 할 수있는 .Controls 개체가 있습니다. 그런 다음 같은 간단한된다 :

Dim txtDynamic As New Textbox() 
Me.Page.Controls.Add(txtDynamic) 

당신은 컨트롤을 추가에 대한 자세한 내용을 제공과 함께 this MSDN article을 확인하는 컨트롤에 추가 속성을 적용 할 수 있습니다.

+0

감사합니다. Dillie, 나는 그것이 내가 찾고있는 것이라고 생각합니다 :) 다시 한번 감사드립니다. –

0

TextBox에서 처리해야하는 데이터의 특성에 따라 HTML 리터럴 컨트롤을 페이지에서 자리 표시 자로 쉽게 사용할 수 있습니다. 그런 다음 코드 숨김 페이지에서 적절한 HTML 코드를 추가하여 필요한 TextBox 수를 만들고 결과 코드를 HTML 리터럴 컨트롤로 설정하기 만하면됩니다. 데이터를 가져와야하는 경우 모든 표준 HTML 텍스트 상자 컨트롤에 "runat = server"속성을 추가하기 만하면됩니다.

이 방법을 사용하면 DataList 또는 그와 비슷한 것을 설정하지 않고도 텍스트 상자가 어떻게 표시되는지 즉각적으로보다 유연하게 알 수 있습니다.

+0

여기에 두 가지 대답을 게시했음을 알았지 만, 어떤 접근 방식이 가장 효과적 일지 그리고 그룹이 선호하는 방식을 파악하기 위해 "폴링"할 것입니다. –

1

정답은 딜리에게.

내가 이것을 원한다면 ASP.NET page lifecycle에 대해 잘 알고 있어야한다고 덧붙이고 싶습니다. 정확한 시간에 컨트롤을 만드는 것이 매우 중요합니다. 그렇지 않으면 페이지에서 포스트 백의 데이터로/fill 이벤트를 시작할 수 없습니다. 일반적으로 이것은 Page_Init 이벤트 중이어야합니다 (이 작업을 수행 한 이후 잠시있었습니다!).

+0

페이지 라이프 사이클 +1 (그리고 소품 8^D에 대한 감사) Will이 설명하는대로 이러한 컨트롤을 만들거나 처리 할 때 반드시 확인하는 것이 중요합니다. –

관련 문제