Ссылка на опции выпадающий - PullRequest
0 голосов
/ 18 мая 2009

Можете ли вы дать ссылку на конкретное значение в раскрывающемся списке параметров с другой страницы?

Другими словами, предположим, что я на странице 1, и я хочу привязать ссылку к странице 2, в которой есть раскрывающийся список параметров с 3 различными значениями. Допустим, по умолчанию при переходе на страницу 2 раскрывающийся список параметров показывает значение 1.

Можно ли сделать ссылку на страницу 2 и изменить значение этого параметра на лету? Если щелкнуть ссылку на странице 1, она автоматически покажет значение 3 вместо 1 на странице 2.

Ответы [ 2 ]

1 голос
/ 18 мая 2009

Это, конечно, возможно. Вы можете передать флаг в вашей строке запроса. Итак, на странице 1 у вас есть ссылка на страницу 2, например "page2.aspx? Option = 3". Затем в методе PageLoad на странице 2 просто прочитайте это значение из строки запроса (Request.QueryString["option"]) и установите соответствующий элемент DropDownList соответствующим образом.

Одна страница1 у вас будет ...

<a href="page2.aspx?option=3">link to page 2</a>

В коде страницы 2, на примере Ала ...

void Page_Load(object sender, EventArgs e) {
   if (!Page.IsPostBack) {
      int option;
      if(int.TryParse(Request.QueryString["option"], out option) { //Only set the value if it is actually an integer
         ddlList.SelectedIndex = option;
      }
   }
}
0 голосов
/ 18 мая 2009

Ответ Джона Фриленда в основном так, как я бы это сделал. Возможно, вы захотите поместить код для установки индекса списка в классе codebehind внутри функции Page_Load.

Вы также можете сохранить значение параметра, установленного в сеансе ASP.Net, но это станет немного сложнее, если вы начнете позволять пользователю перемещаться по сайту. Они могут вернуться на страницу 2 и по-прежнему иметь переменную сеанса, установленную на что-то неожиданное. Кроме того, у вас могут возникнуть проблемы с удалением сеанса, если пользователь какое-то время неактивен или если сервер перезагружен. С другой стороны, если вы поместите его в объект Session, вы можете перемещаться между страницами назад и вперед и всегда иметь под рукой все необходимые данные.

Если вы хотите посмотреть образец, попробуйте что-то вроде:


void Page_Load (object sender, EventArgs e) {
   if (! Page.IsPostBack) {
     ddlList.SelectedIndex = Request.QueryString["option"]
   }

Вы хотите поместить код в раздел! IsPostBack, чтобы он запускался только при первом обращении пользователя к странице.

...