15

What is the syntax to concatenate text into a binding expression for an asp.net webpage (aspx).

For example if I had a hyperlink that was being bound like this:

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

How do you change, say, the Text to concatenate a bound value with a string? Variations like this aren't quite right.

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

neither does

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

4 Answers 4

38

Use Eval instead.

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

Eval is also better if the value is not going to be updated, where Bind allows two way data binding.

Sign up to request clarification or add additional context in comments.

1 Comment

For this question, Eval is correct since there's no point in doing two-way databinding in the NavigateUrl property
8

You can also place the "concatenation" in the text portion of a tag if using a template field:

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

This results in output like:

Name (ID)

inside of the template column.

Comments

3

I have used String.Format("{0}{1}"... before to good effect.

Comments

1

You could use the following:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.