如何使文本框在asp.net(c#)中不可编辑

如何使文本框在asp.net(c#)中不可编辑,c#,asp.net,html,C#,Asp.net,Html,我创建了一个ASP web应用程序,在该应用程序中,一个表单必须更新文本框字段中的日期值,我将日历按钮放在文本框附近。它可以更新该文本框字段中的日期,但它是可编辑的。我想通过只使用日历按钮更新日期值,我使用了只读属性,但返回空值,所以不起作用 尝试客户端htmlreadonly属性,而不是ASP.NET服务器端readonly myTextBox.Attributes.Add("readonly", "readonly"); 来自MSDN 发生回发时,ReadOnly属性设置为true的Tex

我创建了一个ASP web应用程序,在该应用程序中,一个表单必须更新文本框字段中的日期值,我将日历按钮放在文本框附近。它可以更新该文本框字段中的日期,但它是可编辑的。我想通过只使用日历按钮更新日期值,我使用了只读属性,但返回空值,所以不起作用

尝试客户端html
readonly
属性,而不是ASP.NET服务器端
readonly

myTextBox.Attributes.Add("readonly", "readonly");
来自MSDN

发生回发时,ReadOnly属性设置为true的TextBox控件的文本值将发送到服务器,但服务器不处理只读文本框。这可以防止恶意用户更改只读的文本值。除非由服务器端代码修改,否则文本属性的值在回发之间的视图状态中保留


这就是为什么具有服务器端
只读
属性的文本框在回发中具有空值的原因。

您可能需要使用此选项:

TextBox1.Enabled = false;

在代码隐藏文件的页面加载事件中,只需编写以下代码:

yourTextBoxName.Attributes.Add("readonly","readonly");
也可以通过使用属性来执行相同的操作

Enabled="false"
在您的aspx页面上,但您将无法在代码隐藏页面中访问其值。

您可以使用
TextBox1.Enabled=false

TextBox1.Attributes.Add(“只读”、“只读”)


不同之处在于,如果将
设置为enabled=false
,则无法传递
文本框的值。如果您需要传递
textbox
的值,那么您应该使用
textbox

的只读属性。您可以在asp.net中使用只读属性使textbox不可编辑,它会在回发时出现问题。只需设置此java脚本属性即可

onkeydown="javascript:return false"

通过使用此选项,您可以拥有像readonly这样的属性,并且绝对没有问题。您的TextBoxName.Attributes.Add(“readonly”、“readonly”);“更好,因为它允许您的文本框调整大小,而“Enabled=“false”则不会。