Добавление элементов управления во время выполнения проблемы ASP.Net - PullRequest
0 голосов
/ 24 февраля 2009

Я поместил ссылку на страницу и, нажав на нее, написал код для добавления элементов управления после нажатия,

    DropDownList newDropdownlist = new DropDownList();
    panel.Controls.Add(newDropdownlist);
    CheckBox newChkbox = new CheckBox();
    panel.Controls.Add(newChkbox);
    TextBox txt = new TextBox();
    txt.ID = "txtPhoneValue";
    panel.Controls.Add(txt);

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

Я хочу добавлять все больше и больше при каждом нажатии на ссылку.

Ответы [ 4 ]

5 голосов
/ 24 февраля 2009

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

Рассмотрите возможность использования некоторых флагов (хранящихся, например, в сеансе), чтобы указать, что необходимо добавить дополнительные элементы управления.

2 голосов
/ 24 февраля 2009

Вам нужно заново создать элементы управления ( с теми же идентификаторами! ) на обратной передаче, это можно сделать с помощью метода CreateChildControls .

Стоит посмотреть на страницу жизненного цикла ASP.NET , чтобы понять, когда и где можно что-то изменить. Если будет слишком поздно, он не будет добавлен в ViewState и т. Д., Поэтому его стоит понять, особенно при использовании динамически создаваемых элементов управления.

2 голосов
/ 24 февраля 2009

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

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

Вот две статьи, которые действительно помогли мне:

0 голосов
/ 24 февраля 2009

Как эта ссылка построить ??

Если ваш элемент управления ссылками является HTML-элементом управления (клиентский элемент управления), вы испытываете правильное поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...