Перенаправление из ASP.NET Dropdown - PullRequest
3 голосов
/ 30 декабря 2008

Каков наилучший способ обработки ситуации, когда у вас есть раскрывающийся список ASP.Net, который используется для ссылки на другой URL

отредактировано для ясности

Вот основной сценарий:

Dropdownlist с 5 городами, привязанными к нему

При выборе одного из городов мне следует отправить URL-адрес в зависимости от города

Прямо сейчас я отправляю сообщение, используя событие «OnSelectedIndexChanged», затем обрабатываю событие и перенаправляю на соответствующую страницу.

Однако это вызывает 2 попадания на сервер в каждом выбранном городе, 1 для обработки обратной передачи и перенаправления, затем еще один для отображения текущей страницы.

Является ли использование пользовательского JavaScript для создания URL-адреса моим лучшим вариантом?

Ответы [ 5 ]

17 голосов
/ 30 декабря 2008

Вы можете добавить обработчик на стороне клиента для события измененного выбора и затем перенаправить на нужную страницу на основе выбранного значения:

<asp:DropDownList ID="ddl" runat="server"
  onchange="document.location.href = this.value;" >
    <asp:ListItem Text="a" Value="http://url1"></asp:ListItem>
    <asp:ListItem Text="b" Value="http://url2"></asp:ListItem>
    <asp:ListItem Text="c" Value="http://url3"></asp:ListItem>
    <asp:ListItem Text="d" Value="http://url4"></asp:ListItem>
</asp:DropDownList>
3 голосов
/ 30 декабря 2008

Установите для autopostback значение false и добавьте его к клиентскому событию onchange (при условии, что значение имеет полный URL-адрес, если нет, измените его соответствующим образом):

window.navigate(this.options[this.selectedIndex].value);
0 голосов
/ 30 декабря 2008

Как правило, я бы согласился, но для каждой страницы необходимо иметь конкретный URL + перегенерировать другие части страницы при попадании на URL.

Спасибо за предложения, хотя!

0 голосов
/ 30 декабря 2008

Если страница тяжелая и вас беспокоит время рендеринга, вы можете использовать ajax для рендеринга результатов запроса. Попадание на сервер для обработки почтовых данных и перенаправления должно быть минимальным и не стоит делать это на стороне клиента. Лично я бы больше сконцентрировался на отображении данных, которые пользователь хочет в первый раз.

0 голосов
/ 30 декабря 2008

Мне просто интересно, почему бы не получить информацию о городе через AJAX (есть несколько видеоуроков на www.asp.net / learn ) и показать пользователю информацию о городе вместо того, чтобы создавать другие дополнительные переходы по страницам

это всего лишь идея, идея Web 2.0:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...