在服务器端获取客户端只读属性



我正在使用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 集合时,我看到所有其他自定义属性及其正确的值。 如何获取此只读属性?

readonly 属性可以是 "readonly = "readonly" 或 " (空字符串) 或 empty"。尝试将属性设置为 readonly="readonly",然后查看回发属性。

假设您提供的是 .NET 文本框的输出(因为它被标记为 Web 表单)而不是标准 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]

还有控件的只读属性的值。

最新更新