Asp.net 单击按钮时添加用户控件

Asp.net 单击按钮时添加用户控件,asp.net,Asp.net,我创建了一个用户控件(自定义日历-但这并不重要) 此外,我还有一个按钮控件,我的目标是在单击按钮时将日历(用户控件)添加到页面中。页面中的日历数量是无限的,我不想只向页面添加一个日历 protected void addCalendar_Click(object sender, EventArgs e) { // clicked on button, should add the user control. } 用户控件已在页面上注册: <%@ Register src="Cal

我创建了一个用户控件(自定义日历-但这并不重要)

此外,我还有一个按钮控件,我的目标是在单击按钮时将日历(用户控件)添加到页面中。页面中的日历数量是无限的,我不想只向页面添加一个日历

protected void addCalendar_Click(object sender, EventArgs e)
{
    // clicked on button, should add the user control.
}
用户控件已在页面上注册:

<%@ Register src="CalendarUserControl.ascx" tagname="CalendarUserControl" tagprefix="uc" %>

每个日历都应附加到以下div(此div在aspx页面中定义):


//附加的第一个日历
//附加第二个日历
//等等。。
受保护的整数日历;
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(ViewState[“countCalendars”]!=null)
countCalendars=(int)ViewState[“countCalendars”];
//初始化
如果(!IsPostBack)
countCalendars=0;
//注册现有用户控件;在单击按钮之前不会出现
//因此ViewState[“countCalendar”]将存在。
对于(int i=0;i
请发布您的代码,并展示/描述您的尝试。我只是不知道如何做到这一点。实际上,我想这很简单,但我不知道它的语法。该操作只需将一个新的用户控件附加到DOM(或div元素)中即可。请指定您的问题。到目前为止,您已经向我们提供了事实,但还不完全清楚您希望我们做什么/\Post您的标记代码。您是否有服务器端DIV、ASP.NET
占位符或什么?已编辑。希望你能理解。
<div id="calendars-holder">
    // first calendar appended
    // second calendar appended
    // and so on..
</div>
protected int countCalendars;

protected void Page_Load(object sender, EventArgs e)
{
    if (ViewState["countCalendars"] != null)
        countCalendars = (int) ViewState["countCalendars"];

    // init
    if (!IsPostBack)
        countCalendars = 0;

    // register existing user-controls; won't occur before onclick button 
    // so ViewState["countCalendar"] will be exist.
    for (int i = 0; i < countCalendars; i++)
        addCalendar(i);
}

// onclick button
protected void addCalender_Click(object sender, EventArgs e)
{
    addCalendar(countCalendars++);
    ViewState["countCalendars"] = countCalendars;
}

// Adding a new User-Control
protected void addCalendar(int idNumber)
{
    CalculatorUserControl Calendar = LoadControl("~/CalendarUserControl.ascx") as CalendarUserControl;
    Calendar.ID = "CalculatorUserControl" + idNumber.ToString();
    PlaceHolder1.Controls.Add(Calendar);
}