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