21

我已将文本框设置为只读。当用户单击它时,会显示一个日历,并且用户选择输入到只读文本框中的日期。

但是当我尝试将数据输入数据库时​​,它显示空值。怎么了?

4

4 回答 4

55

Readonly当涉及到 ASP.NET属性和readonlyHTML 输入元素的属性时,有一点奇怪。与其设置 Web 控件的属性,不如Readonly尝试简单地将 HTML 属性添加到控件,如下所示:

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

这将使该控件在客户端浏览器中为只读,但仍允许您在输入回发到服务器时检索输入的值。

于 2009-05-07T10:31:29.420 回答
3

系统假定只读或禁用控件不会在客户端更改,因此它不会将更改的值发布回服务器。您需要设置客户端只读属性而不是服务器端版本。

于 2009-05-07T10:33:56.747 回答
2

ASP.NET 假定 Web 控件的 Readonly 和 Enabled="false" 属性不会改变。因此,它不会回发上面汤姆提到的值。您可以使用此解决方法。将此添加到 html 中,您不必担心 Readonly 属性或禁用控件。

   onkeydown="return false;"
于 2017-05-02T10:39:44.433 回答
0

或者您可以将 ASP 文本框替换为带有 runat="Server" 的输入类型文本,然后将只读属性添加为只读。检查链接

通过客户端脚本更改时访问服务器端只读文本框值的解决方法

于 2011-08-19T10:36:04.433 回答