在 asp.net 中使用 Bind 表达式时如何连接文本
Posted
技术标签:
【中文标题】在 asp.net 中使用 Bind 表达式时如何连接文本【英文标题】:How do you concatenate text when using Bind expression in asp.net 【发布时间】:2010-09-26 12:39:08 【问题描述】:将文本连接成 asp.net 网页 (aspx) 的绑定表达式的语法是什么。
例如,如果我有一个像这样绑定的超链接:
<asp:HyperLink id="lnkID" NavigateUrl='<%# Bind("Link") %>' Target="_blank"
Text="View" runat="server"/>
例如,您如何更改 Text 以将绑定值与字符串连接起来?像这样的变化不太正确。
Text='<%# Bind("ID") + " View" %>'
也没有
Text='<%# String.Concat(Bind("ID"), " View") %>'
【问题讨论】:
【参考方案1】:改用 Eval。
Text='<%# Eval("ID", "0 View") %>'
如果不打算更新值,则 Eval 也更好,其中 Bind 允许两种方式的数据绑定。
【讨论】:
对于这个问题,Eval 是正确的,因为在 NavigateUrl 属性中进行双向数据绑定是没有意义的【参考方案2】:如果使用模板字段,您还可以将“连接”放在标签的文本部分:
<asp:TemplateField HeaderText="Name" SortExpression="sortName">
<ItemTemplate>
<asp:LinkButton ID="lbName" runat="server" OnClick="lbName_Click" CommandArgument='<%# Eval("ID") %>'>
<%--Enter any text / eval bindind you want between the tags--%>
<%# Eval("Name") %> (<%# Eval("ID") %>)
</asp:LinkButton>
</ItemTemplate>
这会产生如下输出:
姓名 (ID)
模板列的内部。
【讨论】:
【参考方案3】:我之前用过String.Format("01"
...效果很好。
【讨论】:
【参考方案4】:您可以使用以下内容:
CommandArgument='<%#String.Format("0|1", Eval("ArgZero"), Eval("ArgOn"))%>'
【讨论】:
以上是关于在 asp.net 中使用 Bind 表达式时如何连接文本的主要内容,如果未能解决你的问题,请参考以下文章
如何计算 ASP.Net MVC 中正则表达式捕获的匹配数?
asp.net 中 Eval() Bind() <%%> <%=%> 总结
无法计算表达式,因为在 ASP.NET 中打印页面时对代码进行了优化
菜鸟入门ASP.NET Core5:命令行配置Json文件配置Bind读取配置到C#实例在Core Mvc中使用Options