Почему текстовое поле только для чтения не возвращает никаких данных в ASP.NET? - PullRequest
20 голосов
/ 07 мая 2009

Я установил текстовое поле только для чтения. Когда пользователь нажимает на него, отображается календарь, и пользователь выбирает дату, которая вводится в текстовое поле только для чтения.

Но когда я пытаюсь ввести данные в базу данных, она показывает нулевое значение. Что не так?

Ответы [ 4 ]

52 голосов
/ 07 мая 2009

В отношении свойства ASP.NET Readonly и атрибута readonly входного HTML-элемента наблюдается некоторая странность. Вместо того, чтобы устанавливать свойство Readonly веб-элемента управления, попробуйте просто добавить атрибут HTML в элемент управления следующим образом:

textBox.Attributes.Add("readonly", "readonly");

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

2 голосов
/ 02 мая 2017

ASP.NET предполагает, что свойство Readonly и Enabled = "false" веб-элемента управления не изменится. Таким образом, он не возвращает значение, указанное выше. Вы можете использовать этот обходной путь. Добавляя это в html, вам не нужно беспокоиться о свойстве Readonly или отключенном элементе управления.

   onkeydown="return false;"
2 голосов
/ 07 мая 2009

Система предполагает, что только для чтения или отключенные элементы управления не будут изменены на стороне клиента, поэтому она не будет отправлять измененное значение обратно на сервер. Вам необходимо установить свойство readonly на стороне клиента, а не версию на стороне сервера.

0 голосов
/ 19 августа 2011

Или вы можете заменить текстовое поле ASP на текст ввода типа runat = "Server", а затем добавить свойство только для чтения как только для чтения. Проверьте ссылку

Обходные пути для доступа к значению Readonly Textbox на стороне сервера при изменении через скрипт на стороне клиента

...