2009-10-19 80 views
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); 


} 
+0

你是如何以编程方式加载usercontrols的?哪个事件? – DavidGouge 2009-10-19 15:45:34

+0

在页面加载事件 – 2009-10-19 15:47:23

+0

啊,page_Load,请与_rick_schott的答案。 :D – DavidGouge 2009-10-19 16:40:58

回答

2

认沽LoadControls调用从page life-cycleOnPreInt事件:

使用此事件的以下内容:

  • 检查IsPostBack属性,以确定这是否是第一次页面正在处理。
  • 创建或重新创建动态控件。
  • 动态设置母版页。
  • 动态设置主题属性。
  • 读取或设置配置文件属性值。
相关问题