ASP.net 2.0, Visual Studio 2005 и стандартные элементы управления, такие как <asp:DropDownList>
и т. Д., Требуют, чтобы я поместил AutoPostBack="true"
, чтобы там был вызов кода позади. Но почему? Разве это не должно произойти? ThanksЗачем мне нужно принудительно использовать AutoPostBack = "true"?
ответ
Код за работает на сервере. HTML-код и Javascript запускаются в браузере.
Выпадающий список - это элемент HTML, который запускается в браузере. Он не может ничего делать на сервере, не отправляя данные обратно на сервер. Средства, с помощью которых веб-формы ASPX отправляют данные на сервер, - это обратная передача.
Иногда вы не хотите, чтобы выпадающий список отправлял данные на сервер. Это действительно замедляет работу пользователя, чтобы ждать чего-то, что пересечет провод. Чтобы ускорить работу, вы можете отключить обратную передачу в элементе управления списком; сервер будет связываться только тогда, когда пользователь отправит всю форму. В этот момент сервер может проверить элемент управления списком, чтобы узнать, изменилось ли его значение и предпримет действие.
Альтернативой может быть только вызов javascript (на клиенте) в отличие от совершения двусторонней поездки на сервер (обратная передача).
Javascript быстрее, так как он находится на клиенте и не требует обратной поездки на сервер, но может быть отключен или изменен пользователем.
Нет, это не должно происходить в любом случае.
asp:DropDownList
- это элемент управления, который генерирует один раскрывающийся список. Это отображается как тег select
клиенту. A select
тег, как правило, существует до , собирает, вводимый пользователем, а не для отправки формы.
Форсирование AutoPostBack="true"
необходимо, потому что тогда вы вызываете обратную связь при каждом изменении выбранного индекса. Хотя это может быть полезно, это не ожидаемое поведение тега select
, и большинство разработчиков не захотят этого действия ... по соображениям производительности ... или если оно является частью более крупной формы, оно будет прерывание потока пользователей ... и т. д.
- 1. Зачем мне нужно использовать stopPropagation()?
- 2. Зачем мне нужно использовать UIElement.UpdateLayout?
- 3. Зачем мне нужно использовать Isset?
- 4. Зачем мне это нужно?
- 5. Зачем мне нужно «&»?
- 6. Зачем мне нужно использовать mappedBy Annotation?
- 7. Зачем мне нужно использовать блокировки с семафором
- 8. Зачем мне нужно использовать `size_t` в C++?
- 9. Зачем мне нужно использовать self :: core :: ops?
- 10. Зачем мне нужно «использовать grunt для сборки»?
- 11. Зачем мне это нужно?
- 12. Зачем мне нужно?
- 13. Зачем мне нужно запускать find_rtools() до has_devel() = TRUE?
- 14. Зачем мне нужно, чтобы IsTabStop установил true в ContentControl?
- 15. Зачем мне нужно управление идентификацией
- 16. Зачем мне нужно 'import' framework '?
- 17. Зачем мне нужно звонить новым?
- 18. Зачем мне нужно закрывать потоки
- 19. Зачем мне нужно ждать сопрограммы?
- 20. Зачем мне нужно переопределять ToString?
- 21. Зачем мне нужно() делать setInterval?
- 22. ActionMappingParametersInteceptor - зачем мне это нужно
- 23. Зачем мне нужно «исключение бросков»?
- 24. Зачем мне нужно импортировать ldap.modlist?
- 25. Зачем нам нужно использовать package.json?
- 26. Зачем мне нужно явно использовать метод Groovy trampoline.call() для рекурсии?
- 27. Зачем мне нужно использовать 'parametersetname' с помощью переключателя PowerShell?
- 28. Зачем мне нужно это булевское выражение?
- 29. Мне нужно использовать SQLiteOpenHelper?
- 30. Когда мне нужно var_export (..., TRUE), когда FALSE?
И вот почему я задал вопрос. Если выпадающий список вызывает какое-то поведение, то не должно ли это «поведение» по умолчанию быть на сервере? Это то, что ASPX developmentement - это все, о чем я подумал бы - интерфейсы на стороне клиента с процессами codebehind (в конце концов, технология клиентского сервера). – Fandango68
Поведение 'select' заключается в том, чтобы позволить клиенту выбрать что-либо, а не для обратной передачи. Удобство при переносе с этой настройкой легко. Как только вы лучше познакомитесь с javascript и AJAX, скорее всего, вы не будете использовать этот параметр. – MikeSmithDev