Estoy escribiendo un control de usuario asp.net. Tiene una propiedad, FurtherReadingPage, y dos controles vinculados a ella: ObjectDataSource y un repetidor. Dentro del repetidor me gustaría mostrar un hipervínculo con una propiedad href establecida en algo como FurtherReadingPage + "?id=" + Eval("Id")
. No sé cómo hacerlo dentro del marcado de la página. Puedo usar <% Eval("Id") %>
o <% Response.Write(FurtherReadingPage + "?id=") %>
solo, pero no sé cómo mezclarlos.Cómo usar el código C# dentro de las etiquetas <% ... %> en la página asp.net?
8
A
Respuesta
3
Usted puede hacerlo de esta manera -
<asp:Hyperlink runat="Server" ID="hlLink" NavigateUrl='<%# FurtherReadingPage + "?Id=" + DataBinder.Eval(Container.DataItem, "Id") %>' />
1
Prueba esto (ejemplo, como link): <a href='<%=FurtherReadingPage %>?id=<%# Eval("Id") %>'>My link</a>
3
Prueba esto:
<%#String.Format("{0}?id={1}",FurtherReadingPage, Id)%>
17
Usted tiene un par de etiquetas diferentes:
<%
ejecuta el código en el interior:
<% int id = int.Parse(Request["id"]); %>
<%=
escribe el código dentro:
<%=id %> <!-- note no ; -->
<!-- this is shorthand for: -->
<% Response.Write(id); %>
Ambos romper el flujo normal cuando se representa en una página, por ejemplo, si se utilizan de manera normal Asp.net <head runat="server">
podrás tener problemas
<%#
enlace de datos:
<%# Eval("id") %>
Esto le permite especificar los enlaces para que los controles ASP.NET WebForms hacen como una colección (en lugar de los controles literales que se pueden utilizar con <%=
), por ejemplo:
<!-- 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();
}
%>
para su caso específico que sea:
- Utilice un repetidor y
<%# Eval(...) %>
conrepeater.DataBind();
o
- utilizar un bucle foreach (
<% foreach(... %>
) con<%= ... %>
Cuestiones relacionadas
- 1. Etiquetas HTML dentro de <label>
- 2. Contar las etiquetas <a> dentro de div + childs
- 3. ¿Cómo se llaman estas etiquetas de marcado asp.net <%$ %>?
- 4. Javascript y `<> ...</>` etiquetas
- 5. Es malo poner las etiquetas <span /> dentro de las etiquetas <option />, solo para la manipulación de cadenas y no para el estilo?
- 6. Incrustar código XSL dentro de una etiqueta <a>
- 7. múltiples <nav> etiquetas
- 8. Cómo obtener el código de estado HTTP de <img> etiquetas
- 9. Las etiquetas de servidor no pueden contener construcciones <% ... %>
- 10. Cargando código ejecutable a través de <img> o <a> etiquetas?
- 11. <% %> en ASP.NET (bloques de código incrustado)
- 12. ¿Es seguro omitir las etiquetas</TD> y</TR>?
- 13. Django <input> dentro <label>
- 14. asp.net mvc tags: <%: %> contra <%= %>
- 15. Cómo usar <spring: message> dentro de un atributo de <form:input>?
- 16. C# palabra clave "si" dentro de la etiqueta <script> en la vista de afeitar
- 17. ¿Tiene que definirse CSS dentro de las etiquetas <head>?
- 18. ¿Puede tener <span> dentro de <span>?
- 19. ¿Hay alguna buena razón para usar <rtexprvalue> falso</ rtexprvalue> en las etiquetas JSP?
- 20. ASP.NET MVC Ver código de formato - ortodoncia <% } %>
- 21. ASP.NET <%= %> vs <%: %>
- 22. ¿Existe actualmente una forma de utilizar las etiquetas HTML5 <meta> fuera de <head> en WebKit?
- 23. Al usar <ui: composition> templating, ¿dónde debo declarar el <f:metadata>?
- 24. cómo prevenir la jquery de la eliminación de las etiquetas <script>
- 25. Cómo pedir <script> etiquetas contra <style> etiquetas en el marcado HTML para obtener los mejores resultados
- 26. ¿Por qué no se pueden validar las etiquetas <style> dentro de la etiqueta HTML <body> en W3C?
- 27. Cómo usar List <T> o Dictionary <T,T2> en C# WinRT componente
- 28. ¿Cuál es la diferencia entre <jsp: incluir página = ...> y <% @ incluir archivo = ...>?
- 29. <%# %> vs <%= %>
- 30. espacio entre etiquetas <img>
Esto mezcla <% = y <% #, que creará problemas en la mayoría de las circunstancias. <% = no funcionará dentro de un repetidor y <% # no funcionará a menos que se llame a DataBind(). – Keith
@ Keith: Estás equivocado. Acabo de probar <%= "Test" %> dentro de un repetidor para comprobarlo y funciona bien. <% # solo funciona con Databind(), que es el caso. – Sergio
Lo sentimos, sí, <% = puede funcionar en repetidores, dependiendo de la jerarquía de control anterior que no contenga ningún control de estilo de colección. Básicamente <% = FurtherReadingPage%> a veces funcionará en un repetidor, mientras que <% # FurtherReadingPage%> siempre lo hará. – Keith