2012-07-02 37 views
5

我创建一个ASP Web应用程序,该应用程序中一个表格必须更新在文本框中场我把压延机的按钮,文本框附近的日期值。它可以更新该文本框字段中的日期,但其可编辑。我想通过只使用日历按钮更新日期值,我用只读属性,但返回空值,所以不起作用。如何使在asp.net文本框为不可编辑的(C#)

回答

9

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

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

从MSDN,

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

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

+0

感谢。你最好 – soundy

0

你可能想用这个

TextBox1.Enabled = false; 
1

在隐藏文件代码的页面加载事件只写下面的代码:

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

,你也可以做同样的使用性能

Enabled="false" 

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

+0

“yourTextBoxName.Attributes.Add(”只读“,”只读“);”更好,因为它允许您的文本框可调整大小和“Enabled =”false“”不。 – SubqueryCrunch

3

您可以使用 TextBox1.Enabled = false; OR

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

不同的是,如果你让enabled= false那么你不能传递textbox的价值。如果您需要传递textbox的值,那么您应该使用textbox的只读属性。

0

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

+0

0

使用只读它会给出问题后回到刚刚成立该Java脚本性能

的onkeydown =“JavaScript的:返回false”

使用该U可以有像只读属性,并有绝对没有问题将会araise

相关问题