2010-09-03 110 views
0

動態控件在我點擊它後就消失了,爲什麼會發生這種情況,以及如何解決這個問題。動態創建的控件在點擊時消失點擊

protected void Page_Load(object sender, EventArgs e) 
{ 
    /*DropDownList1_SelectedIndexChanged(sender, e); 
    Label1.Text += "<br/>huh?"; 
    Label1.Text = MapPath("dawd");*/ 
} 
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    //PlaceHolder1.Controls.Clear(); 
    for (int i = 0; i < DropDownList1.SelectedIndex + 1; i++) 
    { 
     CheckBox cb = new CheckBox(); 
     cb.AutoPostBack = true; 
     cb.CheckedChanged += new EventHandler(cb_CheckedChanged); 
     PlaceHolder1.Controls.Add(cb); 
     PlaceHolder1.Controls.Add(new LiteralControl("<br/>")); 
    } 
} 

void cb_CheckedChanged(object sender, EventArgs e) 
{ 
    //DropDownList1_SelectedIndexChanged(sender, e); 
    Label1.Text += "<br/>adsd"; 
    //throw new NotImplementedException(); 
} 

歡呼聲,JAF

回答

6

動態創建的控件在每一個回發重新創建,否則將不可用,他們對事件的非必火。

您只會在下拉列表發生更改時添加複選框,因此任何其他回發都不會添加它們。

最好在頁面OnInit事件中創建您的動態控件。

閱讀關於頁面生命週期here

+0

是的,但我希望它只在從下拉列表中選擇時創建,如何 – user434753 2010-09-03 08:16:19

+0

@ jbs135 - 就像你做的那樣。但是,如果稍後的按鈕/鏈接點擊意味着它們消失(因爲它們不會被重新創建),請不要感到驚訝。 – Oded 2010-09-03 08:30:18