Моя страница asp.net будет отображать различные элементы управления в зависимости от того, какой отчет выбрал пользователь, например. для некоторых отчетов требуется 5 раскрывающихся списков, для некоторых — два флажка и 6 раскрывающихся списков).
Они могут выбрать отчет двумя способами. С помощью SelectedReport=MyReport
в строке запроса или выбрав его из раскрывающегося списка. Обычно они приходят на страницу с SelectedReport в строке запроса, а затем изменяют отчет, выбранный в раскрывающемся списке.
Мой вопрос в том, есть ли способ заставить раскрывающийся список изменить строку запроса при ее выборе. Итак, я бы хотел, чтобы SelectedReport=MyNewReport
в строке запроса и страница отправлялись обратно.
На данный момент выполняется обычная обратная передача, которая оставляет SelectedReport=MyReport
в строке запроса, даже если это не текущий выбранный отчет.
Изменить: Мне также нужно сохранить ViewState.
Я пытался сделать Server.Transfer(Request.Path + "?SelectedReport=" + SelectedReport, true)
в обработчике событий для раскрывающегося списка, и это работает с точки зрения функции, к сожалению, потому что это Server.Transfer (для сохранения ViewState) вместо Response.Redirect, URL-адрес отстает от того, что показано.
Может быть, я прошу невозможного или делаю это совершенно неправильно.
@Craig Коллекция QueryString доступна только для чтения и не может быть изменена.
@Jason Это было бы здорово, если бы я не потерял ViewState, не так ли? (Извините, я добавил это, увидев ваш ответ).