Hace poco tuve un problema con un sistema de noticias en la intranet, y es que tenia un datalist que despliega noticias usando una plantilla, y el cuerpo de la noticia se pone en un label, el problema era que toda la noticia salia en una sola linea ya que el label es codigo HTML, y en HTML el enter para crear una nueva linea es <br> no el caracter ASCII de windows. Para solucionar este problema hay que hacer lo siguiente:
Primero creamos una funcion que va reemplazar el enter normal por <br>:
public string multilinea(Object s)
{
string r = s.ToString();
return r.Replace(Environment.NewLine, “<br>”);
}
Luego necesitamos ir al codigo del documento aspx y buscar la seccion del datalist, dentro de esta seccion debe haber el codigo de nuestro label que se deberia de ver similar a <asp:Label ID=”CONTENIDOLabel” runat=”server” Text=’<%# Eval(“CONTENIDO”) %>’ OnDataBinding=”CONTENIDOLabel_DataBinding”></asp:Label>
Este codigo se encuentra en el documento aspx no en el .cs si seleccionaron la opcion de usar un archivo de codigo separado.
Ahora despues de encontrar el label en el que queremos mostrar mas de una linea, en la propiedad “Text” del label si se fijan dice <%# Eval(“CONTENIDO”) %>, este es el codigo que despliega el texto de nuestra base de datos en el label, entonces utilizando la funcion que creamos arriba vamos a procesar el texto y el resultado se va mostrar en el label, para hacer esto simplement utilizamos nuestra funcion creada antes de la siguiente forma:
<asp:Label ID=”CONTENIDOLabel” runat=”server” Text=’<%# multilinea(Eval(“CONTENIDO”)) %>’ OnDataBinding=”CONTENIDOLabel_DataBinding”></asp:Label>
Y eso es todo, lo que hace la funcion es buscar los enters usando Environment.Newline, y luego los reemplaza con <br>.
Related posts:

{ 2 comments… read them below or add one }
Gracias!, me fue de ayuda; en mi caso estaba concatenando en un StringBuilder lo que desplegaría en el asp:Label, así que solo le concatené la cadena: “” entre cada línea y con eso me funcionó tal cual lo deseaba.
Un millón de gracias, me funcionó tal como lo necesitaba!!!!!!!!!