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

У меня есть asp, чистое текстовое поле, как это

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

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

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

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

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

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

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

4 ответа

Решение

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

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

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

<asp:hiddenfield id="txtLastService" runat="server"/>

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

Другие вопросы по тегам