2009-04-28 11 views
6

Estoy tratando de agregar dinámicamente los resultados a esta pantalla y simplemente quiero poner una etiqueta de ruptura después de una etiqueta para comenzar a poner información en la siguiente línea. Por alguna razón, el uso de un literal no funciona para mí. ¿Hay una mejor manera de hacerlo o debería usar tablas?Inserte una etiqueta <br /> programáticamente (VB.NET)

Dim break As LiteralControl 
break = New LiteralControl("<br />") 
divListenerInfo.Controls.Add(break) 

Eso es parte del código que estoy tratando de usar.


Permítanme aclarar lo que dije:

No funciona ya que el salto de línea no se muestra en la página web. Está compilando bien y no hay nada de malo en el código. Simplemente no aparece en el html por alguna extraña razón.

+0

por qué no añadir otra etiqueta, o añadir el label.txt anterior con un descanso? – madcolor

+0

No sé VB.NET, pero break es una palabra reservada en C#. ¿Recibes una advertencia de compilación para usarlo? –

+0

madcolor: No es una mala idea. Out Into Space: Nope. – Paxenos

Respuesta

14

El control apropiado a utilizar es el HtmlGenericControl.

Dim br As New HtmlGenericControl("br") 

Puede utilizar el HtmlGenericControl para hacer cualquier elemento HTML que desea, sólo tiene que pasar el nombre la etiqueta del elemento como un único argumento del constructor.

+0

¡Genial! No era consciente del HtmlGenericControl previamente. Gracias. – Cyberherbalist

+0

Esto tampoco está funcionando. La etiqueta de salto no aparece en ninguna parte del html. – Paxenos

+0

Parece que los controles nuevos que crea no se agregan a la colección ControlCollection de la página. Debería verificar que el control en sí mismo se está agregando. –

2

¿Por qué no utilizar otra etiqueta o anexar el <br> a la etiqueta.txt anterior?

+0

Funciona. Gracias – Paxenos

+0

Ha votado Andrew +1, ya que creo que tiene una solución más adecuada y más limpia. – madcolor

1

no estoy seguro de si la interrupción es una palabra reservada también en vb.net así que intenta

Dim newline = New LiteralControl("<br>") 

o

newline.Text="<br>"; 
+0

Cambié el nombre de la variable para asegurarme, y no cambió nada. – Paxenos

+0

actualizado con la nueva solución – TStamper

2

Si el
agregado es el último elemento en el contenedor div, no puede ver ninguna diferencia.

que puede probar:

Dim breakTag As LiteralControl 
breakTag= New LiteralControl("<br />&nbsp;") 
divListenerInfo.Controls.Add(breakTag) 

para ver el descanso.

Pero creo que primero deberías agregar un texto ficticio en este Literal y buscarlo en tu página si se agrega. porque tu código se ve bien

+0

Puse un texto genérico en el LiteralControl y solo aparece 2 de 10 veces en el html. ¿Alguna pista de por qué es eso? Lo crucé y la línea de código está siendo golpeada, pero nada resulta de eso. – Paxenos

0

Intentaré recorrer el código con un depurador para asegurarme de que se golpee la línea, también compruebo que divListenerInfo es el control correcto.

0

Creo que está utilizando un panel o un marcador de posición.

sintaxis vb.net o C# .NET:

divListenerInfo.Controls.Add(New LiteralControl("<br>")) 
+1

Dudo que dejar el "/" cambie mucho, y que se rompa la página ... ¿o quizás respondiste antes de leer toda la página? –

2


sé que esto es la reactivación de un antiguo puesto, pero no vi ninguna respuesta clara y finalmente lo he descubierto por mi propia aplicación. Espero que ayude a alguien más!
En mi aplicación traté de crear el control una vez y agregarlo de nuevo donde lo necesite. El control solo se creará una vez por padre.
¡Necesita crear un nuevo control cada vez que lo necesite!
Así que esto:

divListenerInfo.Controls.Add(New LiteralControl("&lt;br />")) 
divListenerInfo.Controls.Add(New LiteralControl("&lt;br />")) 

En lugar de esto

Dim breakTag As LiteralControl 
breakTag= New LiteralControl("&lt;br />") 
divListenerInfo.Controls.Add(breakTag) 
divListenerInfo.Controls.Add(breakTag) 
Cuestiones relacionadas