Wie verwende ich c # -Code in% ...% -Tags auf asp.net-Seite?

8

Ich schreibe ein asp.net-Benutzersteuerelement. Es hat eine Eigenschaft, eine weitere LesePage und zwei daran gebundene Steuerelemente: ObjectDataSource und einen Repeater. Innerhalb des Repeaters möchte ich einen Hyperlink mit einer href-Eigenschaft anzeigen, die auf etwas wie FurtherReadingPage + "?id=" + Eval("Id") eingestellt ist. Ich weiß nicht, wie ich es im Markup der Seite machen soll. Ich kann <% Eval("Id") %> oder <% Response.Write(FurtherReadingPage + "?id=") %> alleine benutzen, aber ich weiß nicht, wie man sie mischt.

    
agnieszka 21.07.2009, 10:40
quelle

4 Antworten

3

Sie können es so machen -

%Vor%     
Kirtan 21.07.2009, 10:47
quelle
17

Sie haben ein paar verschiedene Tags:

<% führt den Code innerhalb von:

aus %Vor%

<%= schreibt den Code innerhalb von:

%Vor%

Beide Teile brechen den normalen Fluss auf, wenn sie auf einer Seite gerendert werden. Wenn du sie zum Beispiel in einem normalen Asp.net <head runat="server"> verwendest, bekommst du Probleme.

<%# Datenbindung:

%Vor%

Damit können Sie die Bindungen für Steuerelemente angeben, die Asp.net WebForms als Sammlung rendern (anstelle der Literalsteuerelemente, für die Sie <%= verwenden können), zum Beispiel:

%Vor%

Für Ihren speziellen Fall haben Sie entweder:

  • Verwenden Sie einen Repeater und <%# Eval(...) %> mit repeater.DataBind();

oder

  • Verwenden Sie eine foreach-Schleife ( <% foreach(... %> ) mit <%= ... %>
Keith 21.07.2009 10:57
quelle
3

Versuchen Sie Folgendes:

%Vor%     
Saul Dolgin 21.07.2009 10:46
quelle
1

Probieren Sie dies (Beispiel als Link): <a href='<%=FurtherReadingPage %>?id=<%# Eval("Id") %>'>My link</a>

    
Sergio 21.07.2009 10:44
quelle

Tags und Links