我有一個asp.net網站和一個用戶控件添加到頁面。 然後,我也有一個按鈕,一旦點擊就在頁面上添加第二個用戶控件。以編程方式添加用戶控件
protected void btnAdd_Click(object sender, EventArgs e)
{
Metric newControl = (Metric)LoadControl("~/Metric.ascx");
Random rnd = new Random();
newControl.ID = "id" + rnd.Next();
placeholder.Controls.Add(newControl);
}
的問題是,每個用戶控制具有這導致回發所以,當發生這種情況與btnAdd按鈕添加的用戶控制不再存在的下拉列表。
我明白這是因爲它只存在於調用btnAdd_Click方法時,我該如何克服這一點?
在'Page_Init'或'Page_Load'(最近)重新創建它們時使用與以前相同的ID。因此,您需要保留已經創建的控件的數量,例如在'ViewState'中。 http://www.4guysfromrolla.com/articles/092904-1.aspx –
此鏈接可以幫助http://stackoverflow.com/questions/682269/custom-control-loads-a-user-control-postback-events-是不是被觸發的?rq = 1,在這種情況下,你將不得不維護用戶控件的創建狀態或不能......以便能夠在頁面加載中重新加載它。這只是一個想法 –