asp:TextBox ReadOnly=true или Enabled=false?

В чем разница между свойствами Enabled и ReadOnly элемента управления asp:TextBox?


person Alf    schedule 06.10.2008    source источник


Ответы (7)


Если элемент управления disabled, его нельзя редактировать, и его содержимое исключается при отправке формы.

Если элементу управления присвоено значение readonly, его нельзя редактировать, но его содержимое (если оно есть) по-прежнему включается в отправку.

person Adam Bellaire    schedule 06.10.2008
comment
Это не обязательно верно... в зависимости от версии .NET, если значение только для чтения изменено, оно вернется к исходному значению при обратной передаче. Вам нужно сделать что-то вроде TextBox1.Attributes.Add(только для чтения, правда); чтобы избежать этого. - person mattruma; 06.10.2008
comment
Это должно быть TextBox1.Attributes.Add(только для чтения, только для чтения), но да, если вы хотите, чтобы состояние просмотра работало, вы не можете использовать ни ReadOnly, ни Enabled. - person Alf; 06.10.2008
comment
Если элемент управления доступен только для чтения, его нельзя редактировать, но его содержимое (если оно есть) может быть включено в отправку. См.: w3.org/TR/html4/interact/forms. html#h-17.12 Элементы только для чтения могут быть успешными. Это означает, что браузер может решить не отправлять обратно значение поля ввода только для чтения, и это будет совершенно правильно. - person Anthony; 02.04.2010
comment
@Anthony: Я не так прочитал эту спецификацию. Успех элемента управления зависит от многих факторов, одним из которых является то, отключен ли элемент управления. (См. раздел сразу после того, что вы процитировали). Для них было бы неправильно сказать, что элементы только для чтения должны быть успешными, потому что, например, это может быть поле выбора только для чтения без выбора. - person Adam Bellaire; 02.04.2010
comment
Истинный. Но есть одна вещь, которую я хотел бы добавить. Если элемент управления текстовым полем находится внутри панели «Обновление», значение для поля «Отключено» будет доступно при отправке формы. - person Arun Banik; 24.03.2014

Другое поведение заключается в том, что элементы управления readonly = 'true' будут запускать события, подобные click, а элементы управления Enabled = False — нет.

person rodrigocl    schedule 17.01.2012

Только чтение не будет «затенять» текстовое поле и по-прежнему будет отправлять значение при обратной передаче.

person Bob Dizzle    schedule 06.10.2008

Подумайте об этом с точки зрения браузера. Только для чтения браузер отправит пару переменная/значение. Для инвалидов не будет.

Запустите это, затем посмотрите на URL-адрес после того, как вы нажмете «Отправить»:

<html>
<form action=foo.html method=get>
<input name=dis type=text disabled value="dis">
<input name=read type=text readonly value="read">
<input name=normal type=text value="normal">
<input type=submit>
</form>
</html>
person Corey Trager    schedule 06.10.2008

Readonly позволит пользователю копировать текст из него. Инвалидов не будет.

person Jonathan C Dickinson    schedule 08.10.2008
comment
может на 2008, на 2013 можно скопировать значения из них обоих - person Gabriel Espinoza; 03.10.2013

Текстовое поле только для чтения в Asp.net

<asp:TextBox ID="t" runat="server" Style="margin-left: 20px; margin-top: 24px;"
Width="335px" Height="41px" ReadOnly="true"></asp:TextBox>
person kavitha Reddy    schedule 15.05.2015

У меня есть дочерняя форма aspx, которая выполняет поиск адреса на стороне сервера. Затем значения с дочерней страницы aspx передаются обратно в родительские текстовые поля через клиентскую часть javascript.

Хотя вы можете видеть, что текстовые поля не были изменены, ни ReadOnly, ни Enabled не позволяют отправлять значения обратно в родительскую форму.

person Guy    schedule 09.12.2010