只读文本框时无法获取文本?

Srb*_*711 2 c# asp.net jquery

我有一个文本框

<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,因为当我删除它有效吗?

谁能帮我?

Abh*_*lks 9

在ASP.Net中,如果更改了readonly值,它将恢复为回发上的原始值.

但是,您可以使用wrokaround,而不是以readonly声明方式指定,将其指定为代码隐藏中的属性.即

代替

<asp:textbox runat="server" id="checkIn" ReadOnly="true"...

应用这是代码隐藏

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

但是,视图状态仍然可能不适用于此.

更多信息:

HTML中的控件readonlydisabled控件之间存在细微差别.这些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将恢复为回发时的原始值.这就是为什么稍后设置属性(在页面加载中)不会影响此行为的原因.

  • 好的电话,abhitalks,我没有意识到这一点......我假设只读和残疾人以同样的方式工作.将删除我的问题以阻止任何混淆 (2认同)