Частичный PostBack и действия на стороне клиента
-
06-09-2019 - |
Вопрос
У меня есть два DropDownList.Первое видно, второе нет.Я хотел бы иметь что-то вроде этого:
- Выберите значение из первого DDL.
- Затем происходит частичный постбэк — данные извлекаются из БД на основе выборки.
- Второй DDL заполнен
- Второй DDL показан с помощью т.е.эффект слайда (Javascript)
Я не хочу иметь полную обратную передачу.Конечный эффект должен быть:
Выберите значение из первого DDL, а затем ниже, перемещается вниз по второму заполненному DDL.
Я понятия не имею, как начать.
Решение
Поскольку похоже, что вы используете веб-формы, первым шагом к решению вашей проблемы будет изучение элемента управления ASP.Net UpdatePanel и предоставляемых им параметров.
http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.aspx
Тем не менее, небольшой совет: UpdatePanel на первый взгляд выглядит великолепно, но он отправляет по сети в 100 раз больше данных, чем необходимо, и быстро становится медленно работающим беспорядком, чем больше вы используете Ajax.Вы действительно можете запрограммировать себя в труднодоступных местах из-за проблем с производительностью, когда функциональность усложняется.
Я бы взглянул на отличные руководства на encosia.com о том, как использовать jQuery с веб-формами Asp.net, и посмотрел, сможете ли вы вместо этого изучить этот метод.UpdatePanel — не такой уж хороший инструмент, и вы будете поражены возможностями jQuery.
http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/
Также вы упомянули, что вам нужен эффект «слайда».Я думаю, что для этого вам придется погрузиться в работу с расширителями анимации ajax asp.net, а работать с этой структурой некрасиво и не приятно.
Другие советы
Вы можете начать с использования UpdatePanel.Вы можете обновить события, чтобы обновить только содержимое, включенное в UpdatePanel.
Официальная ссылка Обзор панели обновления ASP
Использование UpdatePanel — это простой способ получить поведение AJAX в ASP.NET.UpdatePanel будет обрабатывать большую часть AJAX за вас.
Вот хороший урок:
http://www.asp.net/Ajax/Documentation/Live/tutorials/IntroductionUpdatePanel.aspx
Вам следует посмотреть
и использование jQuery, чтобы изменить div второго выпадающего списка, см. здесь
и соответствующий jQuery
<script type="text/javascript">
$(document).ready(function(){
$(".btn-slide").click(function(){
$("#panel").slideToggle("slow");
$(this).toggleClass("active"); return false;
});
});
Возможно, вам поможет каскадный раскрывающийся список из набора инструментов управления Ajax:
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/CascadingDropDown/CascadingDropDown.aspx