c# - 只读时无法获取带有文本框的文本?

标签 c# jquery asp.net

我有一个文本框

<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/

相关文章:

c# - 将 Eval ("bitValue") 转换为 Bool

c# - 将选定的 dropDownList 文本声明为隐藏字段,以便可以与 JS 一起使用

asp.net - 如何迭代 web.config 中的自定义键?

c# - 为数据 GridView 中的特定单元格添加下拉列表

javascript - 按下 ctrl+u 时阻止打开源 View

jQuery UI : Only allow sortable within its own parent level, 且不高于或低于

jquery - 删除所有换行符 (BR)

c# 快速哈希计算

c# - Mono Apache2 HttpWebRequest 崩溃并显示 "The request timed out"

C# 去掉转义符