<asp:TextBox ID="tbName" CssClass="formField" MaxLength="<%=Constants.MaxCharacterLengthOfGameName %>" runat="server"></asp:TextBox>
上述代码无法正常工作。我可以在后端代码中设置文本框的MaxLength属性,但我不想这样做。是否有办法在前端代码中像上面那样设置MaxLength属性?
<asp:TextBox ID="tbName" CssClass="formField" MaxLength="<%=Constants.MaxCharacterLengthOfGameName %>" runat="server"></asp:TextBox>
上述代码无法正常工作。我可以在后端代码中设置文本框的MaxLength属性,但我不想这样做。是否有办法在前端代码中像上面那样设置MaxLength属性?
你可以使用数据绑定(DataBinding):
<asp:TextBox
ID="tbName"
CssClass="formField"
MaxLength="<%# Constants.MaxCharacterLengthOfGameName %>"
runat="server">
</asp:TextBox>
并且在您的代码后台的Page_Load函数中调用:
tbName.DataBind();
或者直接使用数据绑定页面:
this.DataBind();
<%= TextBox1.Text %>
“<%= expression %>”语法被翻译成Response.Write(expression),将expression的值注入到页面的呈现输出中。因为“<%= expression %>”实际上被翻译成了一个Response.Write,所以这些语句不能用于设置Web控件属性的值。换句话说,您不能有以下类似的标记:
<%= TextBox1.Text %>
<asp:Label runat="server" id="CurrentTime" Text="<%= DateTime.Now.ToString() %>" />
来源: https://web.archive.org/web/20210513211719/http://aspnet.4guysfromrolla.com/articles/022509-1.aspx
本文将介绍如何使用ASP.NET MVC和jQuery创建可排序、可过滤和可分页的表格。我们将使用MVC的强大功能来构建一个基本的网站,然后添加一些jQuery插件来增强表格的交互性。最终,我们将得到一个漂亮、易于使用的表格,用户可以轻松地对其进行排序、过滤和分页。尝试使用自定义表达式构建器:
// from http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx
[ExpressionPrefix("Code")]
public class CodeExpressionBuilder : System.Web.Compilation.ExpressionBuilder
{
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry,
object parsedData, ExpressionBuilderContext context)
{
return new CodeSnippetExpression(entry.Expression);
}
}
然后像这样使用它
<asp:TextBox ID="tbName" CssClass="formField" MaxLength="<%$ Code: Constants.MaxCharacterLengthOfGameName %>" runat="server"></asp:TextBox>
看起来你想要从单一位置控制特定类型的文本框的最大长度,以便如果需要更改该最大长度,只需在一个地方进行更改。
您可以通过使用皮肤文件来实现此目的。您可以像通常设置最大长度一样在皮肤文件中设置它,然后使用该最大长度的任何文本框都将使用该皮肤。如果长度发生变化,则只需更改皮肤文件即可。
这个例子旨在从linq中的底层sql类型获取最大长度。但是您应该能够根据自己的需求进行自定义
http://blog.binaryocean.com/2008/02/24/TextBoxMaxLengthFromLINQMetaData.aspx
你可以使用数据绑定来实现
<asp:TextBox
ID="tbName"
CssClass="formField"
MaxLength='<%# Constants.MaxCharacterLengthOfGameName %>'
runat="server" />
然后在代码后台
protected void Page_Load(object sender, EventArgs e) {
Page.DataBind();
}
如果您愿意,可以在 .aspx 文件中嵌入“普通”的代码,例如:
<%
tbName.MaxLength = Constants.MaxCharacterLengthOfGameName
%>
<asp:TextBox ID="tbName" CssClass="formField" runat="server"></asp:TextBox>
这让人想起了旧式的“经典”ASP做法。