2011-05-03 82 views
9

在ASP文件我有两个ASP:文本框ASP:文本框只读

<asp:TextBox ID="textValue" runat="server" Width="100px"/> 
<asp:TextBox ID="textValue2" runat="server" Width="100px" ReadOnly="true"/> 

然后我将通过JavaScript获得

<asp:TextBox ID="textValue" runat="server" Width="100px" value="aaa"/> 
<asp:TextBox ID="textValue2" runat="server" Width="100px" ReadOnly="true" value="bbb"/> 

值,但刷新网页时终于得到

<asp:TextBox ID="textValue" runat="server" Width="100px" value="aaa"/> 
<asp:TextBox ID="textValue2" runat="server" Width="100px" ReadOnly="true"/> 

为什么值bbb是“丢失”?我怎样才能避免这种情况?

+1

如何设置值为只读文本框 – 2011-05-03 13:30:30

+1

使用JavaScript。一个典型的例子是日历+输入文本。 – 2011-05-03 13:49:34

回答

10

“bbb”被重新发布,但.NET不会从回发数据中填充只读文本框。您可以自己从Page_Load()方法抓住了表单数据手动填充文本框,如下所示:

textValue2.Text = Request.Form[textValue2.UniqueID];

0

我认为,而不是只读,将您的值设置为文本框,然后禁用它。

2
<asp:TextBox ID="textValue2" runat="server" Width="100px" ReadOnly="true"/> 

你缺少一个引号前“真”,则可能会导致问题。

+0

我写这个问题时出错。现在编辑,谢谢 – 2011-05-03 13:47:49

7

从文本框中删除服务器端属性 - ReadOnly - 并从代码中设置HTML属性。您将能够访问该值,然后在回发:

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