我有一个TextBox控件,我希望渲染的输入元素具有值readonly
的{{1}}属性:
readonly
我可以使用以下代码在代码隐藏中执行此操作:
<input type="text" readonly="readonly" />
但我宁愿在我的标记中拥有所有控制属性及其值。我能在标记中做到吗? 解决方案可能是扩展TextBox控件,但这对于预期的结果来说过于复杂。
我希望能够使用javascript更改客户端的值,并在回发期间读取值服务器端。请注意,将textBox.Attributes["readonly"] = "readonly"
属性设置为TextBox.ReadOnly
将不解决问题,因为这也会导致服务器忽略TextBox&#39;回发价值。 (MSDN。)我只想从浏览器中获取只读行为。
答案 0 :(得分:1)
以下内容创建了一个只读文本框,其中文本的值可用于代码隐藏。
标记:
<asp:TextBox ID="Text1" runat="server" Text="One Two Three" ReadOnly="true" />
代码背后(本例为C#):
string someText = string.Empty;
if (Page.IsPostBack)
someText = Text1.Text;
答案 1 :(得分:0)
你只有解决方案就是使用js。
答案 2 :(得分:0)
一种可能的方法是使用隐藏字段。 当你在javascript中更改 ReadOnly TextBox 的值时,也要更改隐藏字段的值,然后访问服务器端隐藏字段的值
答案 3 :(得分:0)
在没有获得ASP.NET的ReadOnly
副作用的情况下,您似乎无法在标记中干净利落地完成任务。
但是,你可以使用内联代码,虽然它看起来很难看。
<asp:TextBox runat="server" ID="textBox" />
<% textBox.Attributes["readonly"] = "readonly"; %>