2
不工作我有一個更新面板的母版:用戶控件回發的UpdatePanel中
<asp:UpdatePanel ID="UpdatePanel" runat="server" ChildrenAsTriggers="true" EnableViewState="False"
UpdateMode="Conditional">
<ContentTemplate>
<div id="mainContent">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</ContentTemplate>
<Triggers>
</Triggers>
</asp:UpdatePanel>
然後,我有Default.aspx頁面,它使用了母版文件:
<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
<asp:PlaceHolder ID="plhCurrentItem" runat="server"></asp:PlaceHolder>
</asp:Content>
我編程用戶控件加載到id爲plhCurrentItem的佔位符。
問題是當我點擊usercontrol中的按鈕時,沒有事件觸發。 usercontrol會消失,並且updatepanel保留爲空。
我在做什麼錯?
更新
代碼用於添加用戶控件。 LoadControls方法是從Page_load事件中調用的。
Control ctlCurrentItem = null;
public string currentControl
{
get { return ((string)Session["currentControl"]); }
set { Session["currentControl"] = value; }
}
public void LoadControls()
{
switch (currentControl)
{
case "Home":
ctlCurrentItem = Page.LoadControl("~/pages/Home.ascx");
ctlCurrentItem.ID = "Home";
break;
case "Resume":
ctlCurrentItem = Page.LoadControl("~/pages/Resume.ascx");
ctlCurrentItem.ID = "Resume";
break;
case "Projects":
ctlCurrentItem = Page.LoadControl("~/pages/Projects.ascx");
ctlCurrentItem.ID = "Projects";
break;
case "Contact":
ctlCurrentItem = Page.LoadControl("~/pages/Contact.ascx");
ctlCurrentItem.ID = "Contact";
break;
default:
return;
}
plhCurrentItem.Controls.Clear();
plhCurrentItem.Controls.Add(ctlCurrentItem);
}
你是如何以編程方式加載usercontrols的?哪個事件? – DavidGouge 2009-10-19 15:45:34
在頁面加載事件 – 2009-10-19 15:47:23
啊,page_Load,請與_rick_schott的答案。 :D – DavidGouge 2009-10-19 16:40:58