BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

salto en linea desde sql en asp.net

BocaDePez

Hola gente:

Tengo un pequeño gran problema que es el siguiente. Estoy desarrollando una web en la que hay parte pública y parte privada. Desde la parte privada se pueden modificar todos los textos, imágenes, links, etc. etc. Pues bien. En el momento que le meto un salgo de línea a cualquier campo para que luego en la parte privada se vean como 2 párrafos, no me hace nada. Me lo saco como si fuera todo junto. He probado a hacer modificaciones con el "replace" y un par de cosillas mas pero sin que me hayan funcionado. ¿Alguien me puede echar un cable para solucionarlo? Los datos los introduzco mediante una caja de texto "multiline" y los muestro en campos "label".

Muchas gracias

djnacho

Yo no se asp.net, pero.... ¿Y si en vez de mostrar los campos en label, utilizas cajas de texto también para mostrar los saltos de linea?
Un saludo :)

BocaDePez

Lo que te ocurre es totalmente normal, me explico:

Tienes una casilla de texto, en la cual no estas tecleando HTML sino texto plano, tu escribes: "UNO<intro>DOS" y lo que te guarda en la base de datos es un "UNO<caracter de nueva linea>DOS". Pero eso en HTML no es válido.

Al mostrarlo en WEB tienes que hacer la conversión a carácteres HTML. En PHP existe la funcion nl2br() para convertir los cambio de línea en un BR de HTML.

$texto = "UNO\n\rDOS";
$nuevoTexto = nl2br($texto);
echo $nuevoTexto;
UNO<br>DOS

Lo mismo te ocurrirá si alguien escribe mas de 1 espacio, que tienes que convertir los espacios en "&nbsp;" sino sólo se mostrará uno. Desconozco ASP.NET, pero supongo que al igual que en PHP existen varias funciones para hacer estas conversiones. Sino, haz un REPLACE del caracter que te ha guardado (\n\r, \n,...) a un simple BR.

Saludos