在asp.net中动态添加更新面板c#

时间:2013-12-18 11:39:27

标签: c# asp.net

  <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);            
    }

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

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

2 个答案:

答案 0 :(得分:0)

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

选中此Link : Link that shows a simple example.

答案 1 :(得分:0)

可能是您在错误的页面事件中添加控件。 尝试使用Init或PreInit事件。