ASP.NET 페이지 수명주기를 알고 있지만 혼란 스럽습니다. 데이터베이스 레코드에서 버튼을 만드는 코드가 있습니다. 클릭 한 후에는 코드가 실행되지 않아 사라집니다. .!동적으로 생성 된 단추 다시 만들기
try
{
con.Open();
SqlDataReader myReader = null;
SqlCommand myCom = new SqlCommand("select ID,client from tposClient where CardNo='" + cNo + "'", con);
myReader = myCom.ExecuteReader();
Panel panel1 = new Panel();
panel1.Style["text-align"] = "Center";
panel1.Style["background"] = "blue";
div_login.Visible = false;
while (myReader.Read())
{
string b = myReader["client"].ToString();
string id = myReader["ID"].ToString();
Button btn = new Button();
btn.Text = b;
btn.ID = id;
btn.Style["width"] = "100px";
btn.Click += new EventHandler(btn_Click);
panel1.Controls.Add(btn);
panel1.Controls.Add(new LiteralControl("<br />"));
form1.Style.Add("display", "block");
form1.Controls.Add(panel1);
}
}
catch (Exception k)
{
Console.WriteLine(k.ToString());
}
finally
{
cmdselect.Dispose();
if (con != null)
{
con.Close();
}
}
GridView 나 Repeater 같은 웹 데이터 바인딩 된 컨트롤에서 'UserControls'를 사용할 수 있다는 것을 알고 계십니까? 다이나믹 컨트롤은 대부분의 경우 불필요합니다. –
잘 모르겠습니다. 그리드에서 데이터를 읽고 "버튼"을 만들어야한다는 의미입니다. 당신의 해결책은 무엇입니까? – Arnes
이 컨트롤을 재사용 가능한 ['UserControl'] (http://asp.net-tutorials.com/user-controls/using/)에 포함 시키려고합니다. 그런 다음 GridView의 'TemplateField'또는 [Repeater] 컨트롤 (http://msdn.microsoft.com/en-us/library/x8f2zez5.aspx)에 추가 할 수 있습니다. 위의 동적 코드를 얻으려면 이전과 같은 ID로 포스트 백 컨트롤을 다시 만들어야합니다. –