2015-10-21 3 views
0

У меня есть проект VB с страницей Site.Master и несколькими другими страницами .aspx. У меня есть asp: DropDownList на Site.Master. Когда пользователь меняет выбор выпадающего списка, я хочу, чтобы какая-либо страница .aspx показывалась для обновления - с PostBack, как будто пользователь изменил настройку на странице .aspx и вызвал PostBack на этой странице.Причинение PostBack с обновлением страницы в vb

В настоящее время у меня есть полное обновление страниц с

Protected Sub ddlPlant_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ddlPlant.SelectedIndexChanged 
    Response.Redirect(HttpContext.Current.Request.Url.ToString(), True) 
End Sub 

Проблема: это обновит все, что сбрасывает DropDownList, стирает все данные сеанса, и удаляет все введенные пользователем данные, что страница .aspx будет обычно сохраняются во время обратной передачи.

Как заставить страницу .aspx и страницу Site.Master выполнять обычную обратную передачу вместо полного обновления?

+1

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

ответ

1

При выборе изменения DropDownList обработчик событий загрузки страницы (Page_Load) должен быть вызван с использованием свойства PostBack страницы, равным True, до вызова ddlPlant_SelectedIndexChanged. Если вы должны вызвать его снова после того, как этот метод отделки, просто вызовите обработчик событий для события загрузки страницы:

Protected Sub ddlPlant_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ddlPlant.SelectedIndexChanged 
    Page_Load(Nothing, Nothing) 
End Sub 
+0

. Это вызывает повторную работу функции Page_Load Site.Master, спасибо. Не решение моей конкретной проблемы, но, безусловно, полезно знать в будущем. – steelerose

0

Как было сказано выше Дон Jayamanne - решение было удалить Response.Redirect строку из моего кода, и это вызовет обычный PostBack. Благодаря!

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