2010-04-26 94 views
0

我有一个用户控件,比如SearchVendor.ascx,它包含4个按钮一个gridview和另一个用户控件。 我需要动态实际加载控件作为一个模式弹出动态添加用户控件的事件处理

我得到这个代码

var uc = Page.LoadControl("~/blah/VendorProductSearch.ascx") as VPSearch; 
uc.ShowVPSearch(true); 
_tempPlaceHolder.Controls.Add(uc); 

它工作正常控制才能正确但的onclick加载任何按钮的控制消失,第二次? ?

我要动态添加的控制保留到取消按钮

任何想法就如何实现这一目标用户点击?

感谢&问候, 弗朗西斯P.

+0

所以要清楚,控件是否在回传后消失? – 2010-04-26 18:45:02

回答

0

你需要每一个回发后到控件添加到页面。我正在处理类似于未知数量控件的事情,并且保留添加的数量,以便在回发时重新添加它们。要在取消时将其删除,您需要调用Controls.Remove“myUserControlID”(传入您分配的ID)。

public int AddressCount 
{ 
    get 
    { 
     string s = (string)ViewState["addressCount"]; 
     return ((s == null) ? 1 : Convert.ToInt32(s)); 
    } 

    private set { ViewState["addressCount"] = value.ToString(); } 
}  

protected void Page_Load(object sender, EventArgs e) 
{ 
    for (int i = 0; i < AddressCount; i++) 
    { 
     Control ai = LoadControl("~/controls/addressItem.ascx"); 
     addressContainer.Controls.Add(ai); // addressContainer is a PlaceHolder control on the page 
    } 
}