我创建了一个 ASP Web 应用程序,在该应用程序中,一个表单必须更新文本框字段中的日期值,我将日历按钮放在该文本框附近。它可以更新该文本框字段中的日期,但它是可编辑的。我想通过仅使用日历按钮更新日期值,我使用只读属性但返回空值所以不起作用。
6 回答
尝试客户端 htmlreadonly
属性而不是 ASP.NET 服务器端readonly
。
myTextBox.Attributes.Add("readonly", "readonly");
来自 MSDN,
发生回发时,将 ReadOnly 属性设置为 true 的 TextBox 控件的 Text 值发送到服务器,但服务器不处理只读文本框。这可以防止恶意用户更改只读文本值。Text 属性的值在回发之间保留在视图状态中,除非被服务器端代码修改。
这就是为什么具有服务器端readonly
属性的文本框在回发中具有空值的原因。
您可以使用
TextBox1.Enabled = false;
或
TextBox1.Attributes.Add("readonly","readonly");
不同之处在于,如果你做enabled= false
了,那么你不能传递textbox
. 如果您需要传递 的值,textbox
那么您应该使用 的只读属性textbox
。
您可以在 asp.net 中使 textBox 不可编辑
在文件后面的代码的页面加载事件中,只需编写以下代码:
yourTextBoxName.Attributes.Add("readonly","readonly");
你也可以通过使用属性来做同样的事情
Enabled="false"
在您的 aspx 页面上,但您将无法在页面后面的代码中访问其值。
通过使用只读,它会在回发时出现问题,只需设置此 java 脚本属性
onkeydown="javascript:return false"
通过使用这个你可以拥有像 readonly 这样的属性并且绝对没有问题会引起
你可能想用这个:
TextBox1.Enabled = false;