2013-12-18 51 views
0
<div class="controls"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <h1>Create a new event             
      <asp:TextBox ID="EventName_TB" runat="server" CssClass="control-label"></asp:TextBox> 
       starting on 
      <asp:TextBox ID="StartDate_TB" runat="server" Style="color: #727272 !important; font-size: 24px; font-weight: 100;" CssClass="span2 input-xlarge datepicker" placeholder="mm/dd/yy"></asp:TextBox> 
       for 
       <asp:DropDownList ID="EventDuration_DDL" runat="server" Style="color: #727272 !important; font-size: 24px; font-weight: 100;" CssClass="span1" AutoPostBack="true"> 
        <asp:ListItem>1</asp:ListItem> 
        <asp:ListItem>2</asp:ListItem> 
        <asp:ListItem>3</asp:ListItem> 
        <asp:ListItem>4</asp:ListItem> 
        <asp:ListItem>5</asp:ListItem> 
        <asp:ListItem>6</asp:ListItem> 
        <asp:ListItem>7</asp:ListItem> 
       </asp:DropDownList> 
      days. </h1> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
    </div> 

这是我的C#代码添加更新面板

private void EventDuration() 
    { 
     Labeldiv.Controls.Clear(); 
     DateTime dt = DateTime.Parse(StartDate_TB.Text); 
     int Duration = Int32.Parse(EventDuration_DDL.SelectedItem.ToString()); 
     UpdatePanel up = new UpdatePanel(); 
     up.ID = "UpdatePanel8"; 
     up.UpdateMode = UpdatePanelUpdateMode.Conditional; 

     for (int id = 0; id < Duration; id++) 
     {    
      Label NewLabel = new Label(); 
      NewLabel.ID = "Label" + id; 
      var eventDate = dt.AddDays(id); 
      NewLabel.Text = eventDate.ToLongDateString(); 

      CheckBox newcheck = new CheckBox(); 
      newcheck.ID = "CheckBox" + id; 
      newcheck.AutoPostBack = true;     
      newcheck.CheckedChanged += new EventHandler(newcheck_CheckedChanged); 
      up.ContentTemplateContainer.Controls.Add(NewLabel); 
      this.Labeldiv.Controls.Add(NewLabel);     
      up.ContentTemplateContainer.Controls.Add(newcheck); 
      this.Labeldiv.Controls.Add(new LiteralControl("<br/>"));     
     }    
     this.Labeldiv.Controls.Add(up);    
    } 

实际上它给人的标签&复选框根据我的条件之前,我创建动态更新面板...

它只给出一个标签&一个复选框。这是动态创建更新面板的正确方法吗?

回答

0

创建一个UpdatePanel实例,然后创建您的“子”控件并将它们添加到UpdatePanel的ContentTemplateContainer属性的Controls集合中。最后,将UpdatePanel添加到表单,然后完成。你需要在你的页面上。

入住这Link : Link that shows a simple example.

+0

你能给我的代码根据我的例子..... – THOR

0

这可能是因为你在错误的页面事件添加控件。 尝试使用Init或PreInit事件。

+0

我的EventDuration()在Page_Load().. – THOR

+0

看看http://msdn.microsoft.com/en-us/library /ms178472%28v=VS.100%29.aspx –

+0

这里建议使用PreInit事件来创建动态控件。 –