我有一个文本框
<asp:textbox runat="server" id="checkIn" ClientIDMode="Static" ReadOnly="true">
</asp:textbox>
Run Code Online (Sandbox Code Playgroud)
文本框中的文本通过Jquery DatePicker输入.在后面的一些代码中,我正在从这个文本框中获取文本.
string x=checkIn.Text;
Run Code Online (Sandbox Code Playgroud)
为什么我不能从文本框中提取输入的日期?我猜这是因为它是readonly,因为当我删除它有效吗?
谁能帮我?
在ASP.Net中,如果更改了readonly值,它将恢复为回发上的原始值.
但是,您可以使用wrokaround,而不是以readonly声明方式指定,将其指定为代码隐藏中的属性.即
代替
<asp:textbox runat="server" id="checkIn" ReadOnly="true"...
应用这是代码隐藏
checkIn.Attributes.Add("readonly", "readonly");
但是,视图状态仍然可能不适用于此.
更多信息:
HTML中的控件readonly与disabled控件之间存在细微差别.这些disabled将不会与表格一起提交,但是readonly那些会.从字面上看,readonly只是只读,但disabled实际上是禁用的.
来自W3C:http://www.w3.org/TR/html401/interact/forms.html#h-17.12
(请参阅第17.13.2节"17.13表格提交下的成功控制")
但是,如果控件是这样声明的,即在init期间设置了属性,则ASP.Net将恢复为回发时的原始值.这就是为什么稍后设置属性(在页面加载中)不会影响此行为的原因.
| 归档时间: |
|
| 查看次数: |
15287 次 |
| 最近记录: |