2013-03-21 2 views
0

Я хочу, чтобы иметь возможность добавлять светильники к определенной игре gameweek на моей странице asp.net C#.Программно добавить элемент управления на страницу ASP.NET C# на кнопке Нажмите

Когда пользователь нажимает кнопку «Добавить», он должен создать два раскрывающихся списка, чтобы они могли выбрать домашнюю и гостевую команду. Я хочу иметь возможность разрешать столько элементов, сколько пользователь хочет добавить, поэтому мне нужен динамический способ добавления элементов управления на страницу. После того как все дополнения были добавлены, я хочу, чтобы все они были сохранены в базе данных.

Scrolling корыто форумов я нашел следующий метод, чтобы получить контроль должен быть добавлен программно:

C#

 protected void AddTeamButton_Click(object sender, EventArgs e) 
    { 
     DropDownList homeTeamName = new DropDownList(); 
     homeTeamName.Items.Add("Arsenal"); 
     homeTeamName.Items.Add("Aston Villa"); 
     homeTeamName.ID = "homeTeam"; 
     PlaceHolder1.Controls.Add(homeTeamName); 

     DropDownList awayTeamName = new DropDownList(); 
     awayTeamName.Items.Add("Arsenal"); 
     awayTeamName.Items.Add("Aston Villa"); 
     awayTeamName.ID = "awayTeam"; 
     PlaceHolder1.Controls.Add(awayTeamName); 
    } 

ASPX:

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> 

Это, однако, создает только один набор элементы управления, во второй раз, когда вы нажимаете «добавить», ничего не происходит. Он также не создает уникальные идентификаторы для доступа, когда мне нужно сохранять.

Любые идеи, как я могу решить эти проблемы, которые у меня есть?

+0

Попробуйте дать каждой паре элементов управления уникальные идентификаторы, иначе нет никакого удивления, что они добавляются только один раз. –

+0

Я бы предложил использовать элемент управления ListView с шаблоном, который повторяется в соответствии с количеством элементов в коллекции. Затем вы можете щелкнуть по кнопке, чтобы добавить 1 элемент в коллекцию. Элемент управления ListView заботится о уникальных идентификаторах и т. Д. Просто перетащите и перетащите ListView из панели инструментов, добавьте ItemTemplate, добавьте DataSource и вызовите DataBind(). Посмотрите страницу MSDN для ListView http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx – Bazzz

+0

Как я могу это сделать? – JackofAll

ответ

0

Динамические элементы управления в asp.net не так уж и легки.
Вам необходимо создать их на каждой Почте (Идеально на Init), пока вы не потребуете их на странице.
Вам также необходимо предоставить им уникальные идентификаторы.

Если вы хотите создать несколько элементов управления, я предлагаю поддерживать счетчик в сеансе и использовать его для создания циклов и создания необходимых элементов управления в Init.

На вашем AddTeamButton_Click вы будете только увеличивать счетчик и добавлять один набор элементов управления.

+0

Спасибо! Я думаю, мне, возможно, придется использовать сетку, вместо этого, позор! Мне это действительно не нравится – JackofAll

+0

Это все же лучше, чем бухгалтерский учет, что для создания этих элементов управления по своему усмотрению требуется. – nunespascal

Смежные вопросы