我使用jQuery在JavaScript pageLoad()上动态切换.NET TextBox上的readonly
属性,并通过事件动态切换。
我可以看到此属性已正确添加到文本框HTML中,例如:
<input type="text" value="0" id="txtSalesYear1"
onkeypress="return IsNumberKey(event, true);" data-control-id="sales-textbox"
data-relative-year="1" data-region-id="1" data-subregion-id="2"
data-year="2014" readonly>
但是,当我检查服务器端回发时,readonly
属性为null:
txtSalesYear1.Attributes.Item("readonly") ' = Nothing
当我遍历Attributes集合时,我会看到所有其他自定义属性及其正确的值。我怎样才能获得这个只读属性?
答案 0 :(得分:0)
readonly属性可以是“readonly =”readonly“或”“(空字符串)或空”。尝试将属性设置为readonly =“readonly”,然后查看postback属性。
假设您提供.NET文本框的输出(因为它被标记为webform)而不是标准HTML文本框,您可以添加如下标记:
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="true"></asp:TextBox>
渲染的源代码如下:
<input name="TextBox1" type="text" readonly="readonly" id="TextBox1" />
然后是服务器端
C#
var isReadonly = ((TextBox)TextBox1).ReadOnly;
VB.NET
Dim isReadonly = DirectCast(TextBox1, TextBox).[ReadOnly]
控件的只读属性有你的价值。