在 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中数据库用Windows模式,后台该如何连接

无法计算表达式,因为在 ASP.NET 中打印页面时对代码进行了优化

菜鸟入门ASP.NET Core5:命令行配置Json文件配置Bind读取配置到C#实例在Core Mvc中使用Options

如何使用 DataAnnotations & Regex - c# - ASP.NET Core