我有一个文本框
<asp:textbox runat="server" id="checkIn" ClientIDMode="Static" ReadOnly="true">
</asp:textbox>
文本框中的文本是通过 Jquery DatePicker 输入的。在后面的一些代码中,我像这样从此文本框中获取文本。
string x=checkIn.Text;
为什么我无法从文本框中提取输入的日期?我猜这与它是只读的事实有关,因为当我删除它时它起作用了?
谁能帮帮我?
最佳答案
在 ASP.Net 中,如果更改了只读值,它将在回发时恢复为原始值。
但是您可以使用变通方法,而不是指定 readonly
以声明方式,将其分配为代码隐藏中的属性。即
代替
<asp:textbox runat="server" id="checkIn" ReadOnly="true"...
应用这是代码隐藏
checkIn.Attributes.Add("readonly", "readonly");
但是,viewstate 仍然可能不适用于此。
更多信息:
readonly
之间存在细微差别和 disabled
HTML 中的控件。 disabled
不会与表格一起提交,但是 readonly
那些会的。从字面上看,readonly
只是只读,但是disabled
实际上是禁用。
来自 W3C:http://www.w3.org/TR/html401/interact/forms.html#h-17.12
(继续阅读 17.13 表单提交下的 17.13.2 成功控制)
但是,ASP.Net 会在回发时恢复为原始值,如果控件是这样声明的,即如果在初始化期间设置了属性。这就是为什么稍后(在页面加载中)设置属性不会影响此行为的原因。
关于c# - 只读时无法获取带有文本框的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19565009/