Это, наверное, легко, но я не могу понять. ааа...
Приложение C# asp.net с пользовательским элементом управления. Мой настраиваемый элемент управления представляет собой простой список изображений, заключенных в ссылку, которая будет использоваться в качестве инструмента навигации для родительской страницы.
Когда я нажимаю на ссылку, выполняется обратная передача: событие click не срабатывает, а когда страница перезагружается, список изображений исчезает.
У меня есть EnableViewState="true"
как на родительской странице, так и в пользовательском элементе управления. Насколько я понимаю, этого будет достаточно, чтобы сохранить мой список вариантов? Если я каждый раз перезагружаю список и перепривязываю свой обработчик событий, я думаю, что тогда событие будет потеряно, верно?
Вот (сокращенный код), где я добавляю элементы управления на свою панель.
public void LoadMediaOptions() {
loop through a datareader {
LinkButton b = new LinkButton();
b.Click += new EventHandler(navOption_Click);
b.Attributes.Add("mediaID", mediaID.ToString());
HtmlImage i = new HtmlImage();
i.Src = strThumbLink;
i.Width = 120;
i.Height = 90;
b.Controls.Add(i);
_loadedMediaHtml.Add(b);
panMediaOptions.Controls.Add(b);
}
}
В настоящее время этот метод вызывается только один раз на родительской странице в методе Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!Page.IsPostBack)
uxMediaNav.LoadMediaOptions();
}
catch (Exception ex)
{
throw ex;
}
}
После обратной отправки страницы для меня не загружаются параметры мультимедиа. Мое понимание EnableViewState заключается в том, что он сохранит элементы, которые я загружал динамически, но это не так.