Sto scrivendo un controllo utente asp.net. Ha una proprietà, FurtherReadingPage e due controlli ad essa associati: ObjectDataSource e un ripetitore. All'interno del ripetitore mi piacerebbe visualizzare un collegamento ipertestuale con una proprietà href impostata su qualcosa come FurtherReadingPage + "?id=" + Eval("Id")
. Non so come farlo all'interno del markup della pagina. Posso usare solo <% Eval("Id") %>
o <% Response.Write(FurtherReadingPage + "?id=") %>
ma non so come mescolarli.Come utilizzare il codice C# all'interno dei tag <% ... %> nella pagina asp.net?
8
A
risposta
3
si può fare in questo modo -
<asp:Hyperlink runat="Server" ID="hlLink" NavigateUrl='<%# FurtherReadingPage + "?Id=" + DataBinder.Eval(Container.DataItem, "Id") %>' />
1
Prova questo (ad esempio come link): <a href='<%=FurtherReadingPage %>?id=<%# Eval("Id") %>'>My link</a>
3
Prova questo:
<%#String.Format("{0}?id={1}",FurtherReadingPage, Id)%>
17
Hai un paio di diversi tag:
<%
esegue il codice all'interno:
<% int id = int.Parse(Request["id"]); %>
<%=
scrive il codice all'interno:
<%=id %> <!-- note no ; -->
<!-- this is shorthand for: -->
<% Response.Write(id); %>
Entrambi questi spezzare il flusso normale se fusi in una pagina, ad esempio, se si utilizzano in un normale Asp.net <head runat="server">
Avrete avere problemi
<%#
associazione dati:
<%# Eval("id") %>
Ciò consente di specificare le associazioni per i controlli che ASP.NET WebForms rendono come un insieme (piuttosto che i controlli letterali che è possibile utilizzare <%=
con), per esempio:
<!-- this could be inside a repeater or another control -->
<asp:Hyperlink runat="server" ID="demo"
NavigateUrl="page.aspx?id=<%# Eval("id") %>" />
<% //without this bind the <%# will be ignored
void Page_Load(object sender, EventArgs e) {
demo.DataBind();
//or
repeaterWithManyLinks.DataBind();
}
%>
Per il vostro caso specifico si sia:
- Utilizzare un ripetitore e
<%# Eval(...) %>
conrepeater.DataBind();
o
- Utilizzare un ciclo foreach (
<% foreach(... %>
) con<%= ... %>
Problemi correlati
- 1. Come ottenere il codice di stato HTTP dei tag <img>
- 2. Impedisci il wrapping dei tag <span> per il controllo server ASP.NET
- 3. C# 'if' parola chiave all'interno del tag <script> nella vista del rasoio
- 4. come utilizzare <c:forEach> nel tag script sulla pagina JSP?
- 5. mvc3 - Come disabilitare il codice html dei simboli dalla fonte
- 6. Il selettore CSS funziona solo se <tag> ha contenuto</tag>
- 7. Come utilizzare "ng-if" nel tag Html <a>?
- 8. Come utilizzare ASP.NET <% = tag negli attributi del controllo server?
- 9. Come utilizzare segnaposto HTML con Primavera <form:input> tag sulla pagina JSP
- 10. È sbagliato posizionare il tag <script> dopo il tag</body>?
- 11. Cosa sono chiamati questi tag di marcatura asp.net <%$ %>?
- 12. utilizzando <%= %> o <%# %> con runat = server ASP.NET
- 13. È possibile forzare XmlWriter a emettere <my-tag></my-tag> anziché <my-tag/>?
- 14. Come utilizzare IEnumerable <String> nel codice di documentazione
- 15. Tag HTML nella traduzione i18next
- 16. Quando utilizzare <%# ... %> e <%= ... %>?
- 17. C# XML /// Commenti, dove viene visualizzato il tag <returns></returns>?
- 18. Rails e il tag <span>
- 19. Come utilizzare Delta <T> da OData Web API Microsoft ASP.NET con codice First \ JsonMediaTypeFormatter
- 20. tags mvc asp.net: <%: %> vs. <%= %>
- 21. <img> vs <image> tag in HTML
- 22. Il tag <tr> è facoltativo?
- 23. Tag modulo sulla pagina ASP.net
- 24. Iniezione javascript thourgh <img> -tag
- 25. Come ottenere un tag <img> l'attenzione
- 26. Come convertire l'elenco <char> nella lista <string> in C#?
- 27. Escaping</script> tag all'interno javascript
- 28. Come posso utilizzare un List <> Collezione come ripetitore DataSource in ASP.NET con C#
- 29. ottenere il valore href da <a> tag
- 30. utilizzare l'attributo rowspan in <style> tag
Questo mix <% = e <% #, che creerà problemi a la maggior parte delle circostanze. <% = non funzionerà all'interno di un ripetitore e <% # non funzionerà se non viene chiamato DataBind(). – Keith
@ Keith: Ti sbagli. Ho appena provato <%= "Test" %> all'interno di un ripetitore per ricontrollare e funziona bene. <% # funziona solo con Databind(), che è il caso. – Sergio
Siamo spiacenti, sì, <% = può funzionare nei ripetitori, a seconda della gerarchia di controllo sopra non contenente controlli dello stile di raccolta. Fondamentalmente <% = FurtherReadingPage%> a volte funziona in un ripetitore, mentre <% # FurtherReadingPage%> lo farà sempre. – Keith