Asp: текстовое поле и текст ввода (PHP Developer, изучающий ASP)
Я был разработчиком PHP в течение 10 лет, пытаясь расширить горизонт. Я делаю проект в ASP.NET. В чем преимущество использования <asp:TextBox>
с использованием стандартного <input type=’text’>
?
Кажется выгодным использовать обычный <input type="text">
над <asp:TextBox>
. Во-первых, когда страница отображается, <asp:TextBox>
становится стандартом <input type=text>
. Когда я использую стандартный <input type="text">
, я могу легко получить их значение с помощью кода serveride через Request.Form [ "Name" ]. Затем, когда я динамически добавляю входы (через javascript), я не могу использовать TextBoxs, я должен использовать <inputs type="text">
. В конце концов, не будет ли быстрее выполнять обычный ввод? Если я код с <asp:TextBox>
, это должно быть показано, где, если я использую <input type="text">
, его просто нужно отобразить.
В других словах зачем беспокоиться обо всех элементах asp, когда стандартные входы работают так же хорошо, а если не лучше...
Ответы
Ответ 1
В чем преимущество использования over с использованием стандартного <input type=’text’>
?
- Вы можете ссылаться на текстовое поле немного легче на странице с кодом
- Заметка, что вы можете использовать любой элемент HTML в коде, используя
runat="server"
внутри элемента управления
- У вас есть доступ к большему количеству свойств в текстовом поле, чем элемент ввода html
- Вы можете использовать текстовые поля с другими элементами управления ASP.NET, такими как валидаторы
- С ними проще выполнять привязку данных, чем входы
- Вы можете добавлять события с текстовыми полями проще и почти без усилий по сравнению с использованием ввода и javascript
Сравнительное резюме
- Более быстрое/упрощение программирования
- Совместимость с другими элементами управления ASP.NET
Далее, когда я динамически добавляю входы (через javascript), я не могу использовать TextBoxs, мне нужно использовать <inputs type="text">
.
Является ли использование ASP.NET или Javascript динамически добавленных элементов управления очень беспорядочным. Гораздо проще скрыть/показать элементы управления в случае необходимости (или использовать репитеры или datagrids).
Наконец, не было бы быстрее отобразить обычный ввод? Если я кодирую код, это должно быть показано, где, если я его использую, просто нужно отобразить.
Я не считаю справедливым сравнивать скорость ASP.NET с приложениями HTML/Javascript. ASP.NET предназначался для визуализации элементов управления ASP.NET, а использование элементов управления HTML внутри ASP.NET не будет иметь заметных приростов производительности.
ASP.NET vs HTML/Javascript
Я чувствую, что ваш вопрос в основном сводится к "Почему бы не использовать кирпич на гвоздь, а не молоток?" ASP.NET - это основа и была создана с учетом элементов управления ASP.NET. Цель состоит в том, чтобы позволить вещам программироваться быстрее, проще, абстрагируя большинство вещей (обычно тривиальных, повторяющихся), которые обычно выполняются с помощью Javascript.
Ответ 2
<asp:TextBox>
является управляющим сервером, который в конечном итоге преобразуется в <input
, поскольку страница получает визуализацию в html. Подобно <asp:TextBox>
, вы увидите, что есть другие элементы управления, которые будут преобразованы в стандартные элементы HTML.
<asp:TextBox>
Является управляющим сервером, чтобы вы могли получить к нему доступ в коде, используя свой идентификатор, поэтому вы даже можете выполнять .visible = true или false в коде позади.
Это может помочь
Управление сервером ASP.NET
Преимущества:
- Элементы управления ASP.NET Server могут, однако, определять целевые возможности браузера и соответственно отображать их. Нет проблем с совместимостью браузеров на странице, которая может быть использована как HTML 3.2, так и HTML 4.0 браузером, который будет написан вами.
- Более новый набор элементов управления, который можно использовать таким же образом, как любой элемент управления HTMl, например, элементы управления Calender. (Нет необходимости в ActiveX Control для этого, что затем вызовет проблемы совместимости с браузером).
- Обработка будет выполняться на стороне сервера. В встроенных функциях для проверки нескольких значений (с помощью элементов управления Validation) нет необходимости выбирать между языком сценариев, который был бы несовместим с несколькими браузерами.
- Элементы управления ASP.NET Server имеют объектную модель, отличную от традиционного HTML, и даже предоставляют набор свойств и методов, которые могут изменять внешний вид и поведение элементов управления.
- Элементы управления ASP.NET Server имеют более высокий уровень абстракции. Результат управления сервером ASP.NET может быть результатом многих тегов HTML, которые объединяются вместе для создания этого элемента управления и его событий.
Недостатки:
- Контроль кода встроен с элементами управления веб-сервером, поэтому вы не имеете прямого контроля над этими элементами управления.
- Миграция ASP в любое приложение ASP.NET затруднительна. Его эквивалент переписывания вашего нового приложения
Ответ 3
Вы можете добавить атрибут runat="server"
в любой обычный тег HTML в ASP.NET WebForms, и он будет доступен вам в коде позади как HtmlGenericControl
. Вы можете установить текст через HtmlGenericControl.InnerText
и HTML через HtmlGenericControl.InnerHTML
.
Преимущество использования ASP.NET TextBox заключается в том, что вы можете сделать его как <input type="text" />
или как <textarea />
(TextBox.TextMode="multiline"
)
См. msdn.microsoft.com/en-us/library/7512d0d0.aspx и msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.aspx