Частичный PostBack и действия на стороне клиента - PullRequest
1 голос
/ 27 мая 2009

У меня есть два DropDownList. Первое видно, а второе нет. Я хотел бы иметь что-то вроде этого:

  1. Выберите значение из первого DDL.
  2. Затем происходит частичная обратная передача - данные извлекаются из БД на основе выбора.
  3. Второй DDL заполнен
  4. Второй DDL отображается с эффектом слайда (javascript)

Я не хочу иметь полный постбэк. Окончательный эффект должен быть:

Выберите значение из первого DDL, а затем ниже, сдвигает вниз второй заполненный DDL.

Понятия не имею, с чего начать.

Ответы [ 5 ]

6 голосов
/ 27 мая 2009

Поскольку это звучит так, как будто вы используете веб-формы, первым шагом к решению вашей проблемы будет то, что вы сначала исследуете элемент управления ASP.Net UpdatePanel и его опции.

http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.aspx

Однако, с первого взгляда, UpdatePanel выглядит великолепно, но по сети передает в 100 раз больше данных, чем необходимо, и быстро превращается в медленную работу, чем больше Ajax вы делаете. Вы можете действительно закодировать себя в узких углах из-за проблем с производительностью, когда функциональность усложняется.

Я бы взглянул на замечательные учебники на encosia.com о том, как использовать jQuery с Asp.net WebForms, и посмотрю, сможете ли вы изучить этот метод вместо этого. UpdatePanel - не очень хороший инструмент, и вы будете поражены тем, что может предоставить jQuery.

http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/

Также вы упомянули, что хотели получить эффект «скольжения». Я думаю, что для этого вам придется погрузиться в материал расширений анимации ajax asp.net, и работать с этим фреймворком не очень приятно и не приятно.

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

Использование UpdatePanel - это простой способ получить поведение AJAX в ASP.NET. UpdatePanel будет обрабатывать большую часть AJAX для вас.

Вот хороший урок:

http://www.asp.net/Ajax/Documentation/Live/tutorials/IntroductionUpdatePanel.aspx

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

Вы должны посмотреть на

Каскадный выпадающий список

и используя jQuery для изменения div второго выпадающего списка, Смотри здесь

и соответствующий jQuery

<script type="text/javascript">
$(document).ready(function(){

$(".btn-slide").click(function(){
    $("#panel").slideToggle("slow");
    $(this).toggleClass("active"); return false;
});


});

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

Вы можете начать с помощью UpdatePanel. Вы можете обновить события, чтобы обновить только содержимое, включенное в UpdatePanel.

Официальная ссылка Обзор ASP UpdatePanel

0 голосов
/ 27 мая 2009

Может быть, вам поможет каскадное управление выпадающим списком из инструментария управления Ajax:
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/CascadingDropDown/CascadingDropDown.aspx

...