не могу получить значение текстового поля только для чтения в asp.net

у меня есть текстовое поле asp,net, подобное этому

<asp:TextBox readonly="true" ID="txtLastService" runat="server"></asp:TextBox>

когда я пытался получить значение переменной даты LastService в коде позади, я получаю эту ошибку

Преобразование строки "" в тип "Дата" недопустимо.

Сведения об исключении: System.InvalidCastException: преобразование строки "" в тип "Дата" недопустимо. Ошибка источника: строка 26: oItem.LastService = txtLastService.Text Исходный файл: .\admin\vehicle\add.aspx.vb Строка: 26

я использовал этот же код на других страницах, и он отлично работает, за исключением этой страницы, любая помощь

Редактировать

Обратите внимание, что значение текстового поля не пусто, когда я нажимаю кнопку «Отправить» в форме. А также, когда я удаляю атрибуты только для чтения, я не получаю ошибку. Но мне нужно, чтобы это текстовое поле было доступно только для чтения, так как я использую javascript для выбора даты и установки ее значения.


person Smith    schedule 17.04.2012    source источник


Ответы (4)


Вместо Readonly="true" попробуйте использовать Enabled="false"

person mnsr    schedule 17.04.2012

Ошибка кажется мне очень понятной. Строка "", и вы пытаетесь преобразовать ее в дату. Так как же, черт возьми, пустая строка может быть преобразована в дату? Какая это будет дата?

person Jonathan Wood    schedule 17.04.2012
comment
значение текстового поля не пусто - person Smith; 17.04.2012
comment
Это согласно данным, которые вы предоставили. Установите точку останова в отладчике. Какова именно ценность? Где вы читаете значение в своем коде? Определите проблему, если хотите ее решить. - person Jonathan Wood; 17.04.2012
comment
значение текстового поля при заполнении в браузере представляет собой строку даты мм/дд/гггг. но я не получаю это значение на сервере. я читаю значение на сервере из кода позади. я хочу получить значение текстового поля на сервере - person Smith; 17.04.2012

Почему бы вместо этого не использовать HiddenField?

<asp:hiddenfield id="txtLastService" runat="server"/>
person rick schott    schedule 17.04.2012
comment
текстовое поле должно быть видно, так как я размышляю над java-скриптом, чтобы установить значение, которое является датой - person Smith; 17.04.2012

Попробуйте использовать Request.Form[txtLastService.UniqueID], если C#, и Request.Form(txtLastService.UniqueID), если vb.net

person Kiran Beladiya    schedule 17.04.2012