2008-12-11 4 views
15

Was ist die Syntax zum Verketten von Text in einen Bindungsausdruck für eine asp.net-Webseite (Aspx).Wie verketten Sie Text, wenn Sie Bind-Ausdruck in asp.net verwenden

Zum Beispiel, wenn ich hatte einen Hyperlink, der so gebunden wurde:

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

Wie ändern Sie, sagen wir, den Text eines gebundenen Wert mit einer Zeichenfolge verketten? Variationen wie diese sind nicht ganz richtig.

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

auch nicht

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

Antwort

8

Sie können auch die "Verkettung" in dem Textteil eines Tags platzieren, wenn ein Schablonenfeld mit:

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

Dieser Ausgang führt wie:

Name (ID)

innerhalb der Template-Spalte.

3

I String.Format("{0}{1}" verwendet haben ... vor um eine gute Wirkung.

34

Verwenden Sie stattdessen Eval.

Eval ist auch besser, wenn der Wert nicht aktualisiert wird, wobei Bind eine zweiseitige Datenbindung ermöglicht.

+2

Für diese Frage ist Eval korrekt, da in der NavigateUrl-Eigenschaft keine bidirektionale Datenbindung erforderlich ist –