Я понимаю, что элементы управления «почему» исчезают при обратной передаче, и до сих пор я имел большой успех, просто создавая то, что мне нужно делать динамически в инициализации страницы. Однако для меня это развалилось, когда мне пришлось добавить некоторые элементы управления на страницу asp.net на основе значения существующего выпадающего списка.
Так что мой вопрос прост, и я не могу найти хороший пример работающего кода. Мне нужно добавить некоторые элементы управления на страницу на основе значения раскрывающегося списка. Затем сохраните эти добавленные элементы управления через другие постбэки (сессия в порядке).
Вот фрагмент кода для работы:
protected void Page_Init(System.Object sender, System.EventArgs e)
{
RebuildPlaceholder();
}
protected void ddlGroup_Change(System.Object sender, System.EventArgs e)
{
ExampleDataContext ctxExample = new ExampleDataContext();
var aryExample = (from rslt in ctxExample.mvExample
where rslt.label.ToLower() == ddlGroup.SelectedValue
select rslt);
foreach (var objExample in aryExample)
{
TextBox txtCreated = new TextBox();
txtCreated.ID = "ddl" + objExample.ID;
plcExample.Controls.Add(txtCreated);
}
StorePlaceholder();
}
private void StorePlaceholder()
{
//Need code to store all controls in a placeholder.
}
private void RebuildPlaceholder()
{
//Need code to rebuild all of the controls from Session.
}
Я нашел эту статью по теме: Динамически добавлять элементы управления , но я борюсь с синтаксисом для сериализации всех элементов управления и т. Д.
Это может быть ограничено дочерними элементами управления одного заполнителя, который уже существует на странице, просто я хочу сохранить / восстановить элементы управления этого заполнителя.
Подойдет любая версия ASP.NET, если в 4.0 есть что-то, что упростило эту задачу.