如何使用Razor/Webforms语法访问属性中的属性
本文关键字:属性 访问 语法 Webforms 何使用 Razor | 更新日期: 2023-09-27 18:27:43
我正在尝试使用regex验证器在文本区域设置最大长度限制(如果有更好的方法,请告诉我)。这是一个ASP.Net Web窗体用户控件。我目前的代码是
<asp:Panel ID="labeledTextBox" runat="server">
<asp:Label ID="label" CssClass="label" ClientIDMode="Static" runat="server"/>
<asp:TextBox ID="textBox" CssClass="labeledTextBox" TextMode="MultiLine" ClientIDMode="Static" runat="server"/>
<asp:Label ID="textBoxLengthLabel" CssClass="textBoxLengthLabel" ClientIDMode="Static" runat="server">Maximum <%= MaxLength %> characters</asp:Label>
<asp:RegularExpressionValidator ID="textboxLengthValidator" Display="Dynamic" ControlToValidate="textBox" ValidationExpression="^['s'S]{0,<%= MaxLength %>}$" ErrorMessage="Test Message" ClientIDMode="Static" runat="server" />
</asp:Panel>
MaxLength
在codeehind文件中定义为
public int MaxLength { get; set; }
我设置的值正确地显示在textBoxLengthLabel
中,例如Maximum 500 characters
。
然而,它是在验证器的属性中直接获取的。客户端的标记是
<SPAN id=textboxLengthValidator
style="COLOR: red; DISPLAY: inline"
controltovalidate="textBox"
errormessage="Test Message"
validationexpression="^['s'S]{0,<%= MaxLength %>}$"
isvalid="false"
display="Dynamic">Test Message</SPAN>
如何在属性中使用代码隐藏文件中的属性?
在页面加载或提交时的代码中,您可以简单地添加atribute
textBox.Attributes.Add("maxlength", MaxLength.ToString());