Почему текстовое поле только для чтения не возвращает какие-либо данные в ASP.NET?

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

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

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

   onkeydown="return false;"