我有一个用户控件说SearchVendor.ascx,它包含4个按钮,一个gridview和另一个用户控件。 我需要动态加载控件作为模式弹出
我收到此代码
var uc = Page.LoadControl("~/blah/VendorProductSearch.ascx") as VPSearch;
uc.ShowVPSearch(true);
_tempPlaceHolder.Controls.Add(uc);
它可以正常加载控件,但第二次控件消失时点击任意按钮???
我希望动态添加的控件保持不变,直到用户点击取消按钮
有关如何实现这一点的想法吗?
谢谢&问候, Francis P。
答案 0 :(得分: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
}
}