По сути, у меня есть выпадающий список и динамически добавленный пользовательский элемент управления. Пользовательский элемент управления загружает вид сетки в зависимости от выбора, который был сделан в раскрывающемся списке. Выпадающий список не является частью пользовательского элемента управления.
Теперь вопрос в том, как мне симулировать (isControlPostback = false) каждый раз, когда пользователь меняет выбор в раскрывающемся списке? Похоже, ViewState запоминает элемент управления.
Внутри моего пользовательского контроля у меня есть:
protected bool IsUserControlPostBack
{
get
{
return this.ViewState["IsUserControlPostBack"] != null;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsUserControlPostBack)
{
ViewState.Add("IsUserControlPostBack", true);
//load stuff in the grid view and bind it
}
}
Когда пользователь меняет выбор в выпадающем списке, у меня появляется окно подтверждения JavaScript, и страница отправляется обратно. Так что событие OnSelectedIndexChanged для выпадающего списка не срабатывает. Я хотел бы удалить, чтобы сделать что-то подобное каждый раз, когда изменяется выбранный индекс:
ViewState.Remove ( "IsUserControlPostBack");