Как вы объединяете текст при использовании выражения 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") %>'
11.12.2008 20:55:35
4 ОТВЕТА

Я использовал String.Format("{0}{1}"... раньше, чтобы хороший эффект.

3
11.12.2008 20:58:43

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

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

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

35
11.12.2008 21:09:31
В этом вопросе Eval верен, поскольку нет смысла выполнять двустороннее связывание данных в свойстве NavigateUrl
John Sheehan 11.12.2008 21:14:30
РЕШЕНИЕ

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

<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)

внутри столбца шаблона.

8
12.12.2008 22:10:11

Вы можете использовать следующее:

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