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

时间:2008-12-11 20:55:35

标签: asp.net data-binding syntax binding

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

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

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

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

Text='<%# Bind("ID") + " View" %>'

既不

Text='<%# String.Concat(Bind("ID"), " View") %>'

4 个答案:

答案 0 :(得分:35)

改为使用Eval。

Text='<%# Eval("ID", "{0} View") %>'

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

答案 1 :(得分: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>

这导致输出如:

名称(ID)

在模板列内。

答案 2 :(得分:3)

我之前使用String.Format("{0}{1}" ......效果很好。

答案 3 :(得分:1)

您可以使用以下内容:

CommandArgument='<%#String.Format("{0}|{1}", Eval("ArgZero"), Eval("ArgOn"))%>'