동적 인 측량을 만들려고합니다. 데이터베이스에서 모든 질문 컨트롤을 생성합니다. 아래는 내가 뭘하려고하는지 (데이터베이스 부분없이)의 예입니다. 나는 아래와 같이 질문을 표시 할 수있다. 사용자 입력을 읽을 수 없습니다.동적 컨트롤에서 사용자 입력 받기
누구에게 아이디어가 있습니까?
나는 viewstate를 들여다 보았지만 작동시키지 못하고있다.
포스트 백을 통해 페이지를 다시로드하면 컨트롤이 사라집니다. 내가 생각할 수있는 모든 이벤트를 살펴 보았으므로 페이지에 컨트롤이 없습니다. Page_Load 이벤트에서 다시 만들 때까지.
동적으로 생성 된 컨트롤에 대한 사용자 입력 값은 어디에서 찾을 수 있습니까?
페이지
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
코드 파일
protected override void OnPreLoad(EventArgs e)
{
base.OnPreLoad(e);
foreach (Control item in form1.Controls)
{ }
}
protected void Page_PreInit(object sender, EventArgs e)
{
foreach (Control item in form1.Controls)
{ }
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
foreach (Control item in form1.Controls)
{ }
}
protected override void OnSaveStateComplete(EventArgs e)
{
base.OnSaveStateComplete(e);
foreach (Control item in form1.Controls)
{ }
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
foreach (Control item in form1.Controls)
{ }
}
protected void Page_Load(object sender, EventArgs e)
{
RadioButton rb;
rb = new RadioButton();
rb.ID = "rb_1";
rb.Text = "yes";
rb.GroupName = "question";
form1.Controls.Add(rb);
rb = new RadioButton();
rb.ID = "rb_2";
rb.Text = "no";
rb.GroupName = "question";
form1.Controls.Add(rb);
rb = new RadioButton();
rb.ID = "rb_3";
rb.Text = "other";
rb.GroupName = "question";
form1.Controls.Add(rb);
TextBox tb = new TextBox();
form1.Controls.Add(tb);
Button btn = new Button();
btn.Text = "Save";
form1.Controls.Add(btn);
foreach (Control item in form1.Controls)
{
}
}