在asp.net中使用Bind表达式时如何连接文本

The*_*tan 15 asp.net data-binding syntax binding

将文本连接到asp.net网页(aspx)的绑定表达式的语法是什么.

例如,如果我有一个像这样绑定的超链接:

<asp:HyperLink id="lnkID" NavigateUrl='<%# Bind("Link") %>' Target="_blank" 
                        Text="View" runat="server"/>
Run Code Online (Sandbox Code Playgroud)

你如何更改文本以将绑定值与字符串连接?像这样的变化并不完全正确.

Text='<%# Bind("ID") + " View" %>'
Run Code Online (Sandbox Code Playgroud)

也没有

Text='<%# String.Concat(Bind("ID"), " View") %>'
Run Code Online (Sandbox Code Playgroud)

The*_*tan 35

请改用Eval.

Text='<%# Eval("ID", "{0} View") %>'
Run Code Online (Sandbox Code Playgroud)

如果值不会更新,则Eval也会更好,Bind允许双向数据绑定.

  • 对于这个问题,Eval是正确的,因为在NavigateUrl属性中进行双向数据绑定没有意义 (2认同)

The*_*tan 8

如果使用模板字段,您还可以在标记的文本部分中放置"连接":

<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>
Run Code Online (Sandbox Code Playgroud)

这导致输出如下:

姓名(ID)

在模板列的内部.