Как вы объединяете текст при использовании выражения Bind в asp.net

Каков синтаксис для конкатенации текста в выражение привязки для веб-страницы 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") %>'

Ответы

Ответ 1

Вы также можете поместить "конкатенацию" в текстовую часть тега при использовании поля шаблона:

<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

Вместо этого используйте Eval.

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

Eval также лучше, если значение не будет обновляться, где Bind разрешает двухстороннюю привязку данных.

Ответ 3

Я использовал String.Format("{0}{1}"... до хорошего эффекта.