7

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

4

6 回答 6

12

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

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

来自 MSDN,

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

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

于 2012-07-02T08:48:32.943 回答
5

您可以使用 TextBox1.Enabled = false;

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

不同之处在于,如果你做enabled= false了,那么你不能传递textbox. 如果您需要传递 的值,textbox那么您应该使用 的只读属性textbox

于 2012-07-02T11:00:34.427 回答
1

您可以在 asp.net 中使 textBox 不可编辑

于 2012-07-02T12:50:32.560 回答
1

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

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

你也可以通过使用属性来做同样的事情

Enabled="false"

在您的 aspx 页面上,但您将无法在页面后面的代码中访问其值。

于 2012-07-02T09:54:27.783 回答
0

通过使用只读,它会在回发时出现问题,只需设置此 java 脚本属性

onkeydown="javascript:return false"

通过使用这个你可以拥有像 readonly 这样的属性并且绝对没有问题会引起

于 2013-09-05T04:55:49.073 回答
0

你可能想用这个:

TextBox1.Enabled = false;
于 2012-07-02T08:48:42.587 回答