Сохранение выбранного элемента из выпадающего списка после обновления страницы в веб-форме asp
У меня есть aspx
страница, которая имеет несколько drop down list
, Поэтому, когда пользователи забывают ввести некоторые значения, я должен показать ошибку пользователю, но каждый DDL
инициализируются снова, и информация о пользователях теряется, как я могу избежать этого?
Когда пользователи забывают ввести значения, я возвращаю их текущим url
url1=www.spadsystem.com
Response.Redirect(Url1);
Я слышал, что мы можем избежать этой проблемы, используя что-то вроде absolute
я не уверен.
4 ответа
Используйте объект SessionState для хранения свойства SelectedIndex ComboBox (например, Cmb), затем примените его в событии Page_Load().
Пример 1: сохранить значение в сеансе
int _idx = Cmb.SelectedIndex;
Session["idx"] = _idx.ToString();
Пример 2: чтение из сеанса и применение к ComboBox:
Cmb.SelectedIndex = (int)(Session["idx"]);
Более подробная информация по адресу: http://msdn.microsoft.com/en-us/library/vstudio/ms178581%28v=vs.100%29.aspx
Rgds,
Прежде всего, не перенаправляйте пользователя, когда это не требуется.
Во-вторых, используйте RequiredFieldValidator для ваших полей. Это предотвратит обратную передачу, когда ваши пользователи забудут ввести какое-либо значение.
И в-третьих, если вы связываете выпадающие списки программно, сделайте это в
If(!IsPostBack)
{
//Your ddl initialization here
}
Это гарантирует, что вы получите выбранные значения из DropDownLists
Согласен с использованием RequiredFieldValidator. и элементы управления должны содержать свои значения, если для элемента управления установлено состояние просмотра (проверьте свойства).
Избегайте перенаправления на другую страницу и обратно, чтобы показать ошибку, и убедитесь, что вы инициализируете списки, если IsPostBack имеет значение false. Затем ASP.NET Viewstate позаботится обо всем за вас и сохранит все выбранные значения.