2013-07-15 3 views
-1

Я создал пользовательский элемент управления (настраиваемый календарь - но это не имеет значения).Добавление пользовательского контроля при нажатии кнопки

Кроме того, у меня есть кнопка управления, и моя цель - добавить на страницу календарь (пользовательский контроль) при нажатии на кнопку. Количество календарей на странице неограничено, я не хочу добавлять только один календарь на страницу.

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 (это ДИВ определяется на странице ASPX):

<div id="calendars-holder"> 
    // first calendar appended 
    // second calendar appended 
    // and so on.. 
</div> 
+1

Пожалуйста, разместите свой код и покажите/опишите, что вы пробовали. –

+0

Я просто не знаю, как это сделать. На самом деле, я думаю, это действительно просто, но я не знаю синтаксиса для этого. действие должно просто добавить новый пользовательский элемент управления в DOM (или в элемент div). – Luis

+0

И, пожалуйста, укажите свой вопрос. Пока вы дали нам факты, но не совсем понятно, что вы хотите от нас сделать \ \ – logixologist

ответ

0
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); 
} 
Смежные вопросы