• Jueves 14 de Noviembre de 2024, 19:13

Autor Tema:  Render Un Bloque De Texto  (Leído 3007 veces)

equiss

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Render Un Bloque De Texto
« en: Viernes 17 de Junio de 2005, 22:07 »
0
saludos,

Necesito como puedo render un bloque de texto que estraiga de la base de datos, por ejemplo en esta pagina

<!--<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="test.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<html>
<head>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name=vs_defaultClientScript content="JavaScript">
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body MS_POSITIONING="GridLayout">

<form id="Form1" method="post" runat="server">
<%Response.Write("este texto de ejemplo");%>

</form>

</body>
</html>-->

puse un Response.Write y se ejecuta correctamente, pero eso mismo lo guardo en la base de datos y lo llamo entonces me pone el response.write como si fuera texto pero no me ejecuta el script como tal. Como puedo hacer para que despues que rendere la pagina poder renderiar lo que yo necesite. No tomen el response.write muy apecho, solo lo use como ejemplo para que vean lo que quiero hacer... resumiendo, renderiar un texto que saco de la base de datos y que se ejecuten los scripts que tenga como si estuvieran escritos en una pagina.... ya he preguntado esto es otros foros y nadie sabe....

agradezo cualquier sugerencia....

Jean

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #1 en: Viernes 17 de Junio de 2005, 23:40 »
0
Hola, bueno lo que quieres hacer osea un render de codigo no es tampoco asi de faicl com intentas en tu ejemplo pero si se puede; para lo que quieres, por si no lo conoces se llama "CodeDom (Code Document Object Model)" bueno esta tecnica es nueva de .NET es IMPRESIONANTE!!!! porque con esta tecnica realizas cosas muy interesantes, bueno para entender bien la logica y una buena implementacion de esta tecnica debes conocer algo de manejo de àrboles aunque no es estrictamente requerido, bueno disculpame por no alargar mas este tema (no tengo mucho tiempo en este momento  :( ) pero te paso un tutorial que me ayudo mucho, es de WillyDev.

CodeDom

Creo que el articulo es bastante completo. Suerte.

Salu2
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

equiss

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #2 en: Sábado 18 de Junio de 2005, 01:18 »
0
gracias por responder, me pondre a estudiarlo enseguida...

de todos modos sigo abierto a cualquier sugerecia

salu2

equiss

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #3 en: Sábado 18 de Junio de 2005, 06:06 »
0
Estuve viendo el tutorial y esta muy bueno, impresionante lo que se puede hacer, pero todavia tengo algunas dudas, en que se la que busco, es script que quiero correr estaria en el html de la página (tengo entendido que los scripts que estan en el html, no se compilan en la dll), no creo que sea necesario compilarlo y meterlo en la dll, sino solo que lo ejecute.... como digo no estoy seguro, quizás sea asi... agradeceria cualquier ayuda.

jean

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #4 en: Sábado 18 de Junio de 2005, 16:10 »
0
Bueno para los que estamos muy apegados al modelo del clasico ASP es un poco dificil adaptarnos al nuevo modelo que propone ASP.NET, pues si ASP.NET a cambiado bastante todo a sido para Bien. La idea de .NET es optimizar en todos los aspecto y usar todo orientado a objetos, por ejemplo en el caso de ASP.NET la idea principal es separar el diseño de la logica, es decir ya no usar bloques <% bla bla bla..%> (Si estos bloques aun existen creo que son solo por mantener compatibilidad con el clasico ASP) si no en ves de esto usar los eventos controles, etc... ahora para colocar tu procedimiento que quieres manejar con CodeDOM puedes usar los eventos de pagina load, prerender, etc... y enlazar ahi tu procedimiento.

Salu2
 :comp:  :hola:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

equiss

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #5 en: Domingo 19 de Junio de 2005, 03:03 »
0
Cita de: "Kev"
Bueno para los que estamos muy apegados al modelo del clasico ASP es un poco dificil adaptarnos al nuevo modelo que propone ASP.NET, pues si ASP.NET a cambiado bastante todo a sido para Bien. La idea de .NET es optimizar en todos los aspecto y usar todo orientado a objetos, por ejemplo en el caso de ASP.NET la idea principal es separar el diseño de la logica, es decir ya no usar bloques <% bla bla bla..%> (Si estos bloques aun existen creo que son solo por mantener compatibilidad con el clasico ASP) si no en ves de esto usar los eventos controles, etc... ahora para colocar tu procedimiento que quieres manejar con CodeDOM puedes usar los eventos de pagina load, prerender, etc... y enlazar ahi tu procedimiento.

Salu2
 :comp:  :hola:
estuve probando page load y el prerener, pero con niguno de los dos me funciono, quizás estuve haciendo algo mal, pero siempre sucede lo mismo solo se escribe el script pero no se se ejecuta, ahora la idea de ponerlo en el html y no en la dll, no es porque este pegado a asp, sino porque estoy haciendo un sitio de articulos, asi que guardo html en la base de datos lo que muchas posibilidades en cuanto al diseño, ahora lo unico que necesito es dentro del mismo html de un articulo hacer llamadas a algunos proceminientos que tengo en la dll, procedimientos que basicamente me devuelven texto con otras imformaciones de acuerdo necesite ese articulo seria algo como

<!--<h5>Este es el Titulo</h5>
<p>Este es el texto del articulo Este es el texto del articuloEste es el texto del Este es el texto del articuloEste es el texto del articuloEste es el texto del articulo [color= #ff0066]Esto es importante[/color]</p>
<h5>Articulos Mas Importantes</h5>
<%ShowArticleList(5);%>-->

en este caso necesito que me muestre la lista de 5 articulos mas por ejemplo, ahora como decia, si esto esta escrito en la pagina fisicamente funciona perfectamente, pero si la llamo de la base de datos me imprime el script literalmente y no lo ejecuta, como ya dije incluso probando con el prerender y el page load...

agradezdo la ayuda, disculpa si he molestado demasiado

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #6 en: Lunes 20 de Junio de 2005, 22:00 »
0
Bueno en realidad no se como estas armando tu pagina, pero lo si lo que tienes en la Base de datos es solo HTML entonces no necesitas CodeDom intenta crear un control de usuario y ahi llenas el contenido (nota que el control tambien tiene sus propios eventos Load, etc...) y luego por ultimo maneja un ID para referenciar el articulo y luego coloca otro control o puedes usar el mismo y con la referencia de este ID hacer correr los procedimientos necesarios, etc.. creo que con eso bastaria, porque CodeDom al agregar los procedimientos tienes que tener mucho cuidado de hacer correr un codigo limpio y manejar los errores, y no creo que se adapte bien para lo que quieres hacer, porque?¿? pues porque tu pagina no seria eficiente porque cada vez que ingresaria segun n casos se estaria volviento a compilar a la dll (cosa que no queremos, solo queremos que se haga seto la primera vez) y tu sabes que esto tarda y lo que mas se quiere en la web es velocidad, por eso acomoda tu pagina bueno yo creo que con controles de usuario funcionaria normal

Salu2
 :comp:

No te preocupes, tu pregunta no me molesta  :)  :comp:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

equiss

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #7 en: Martes 21 de Junio de 2005, 00:02 »
0
la idea es que necesito hacer una especie de cms.... una sitio que permita agregar paginas dinamico, no fisicamente sino con un id en la base de datos como bien dices, osea agregas una pagina, le pones el panel derecho que deseas, el panel izquierdo, el de arriba, el de abajo y el del medio, todo esto con editores html, para que puedas poner html y todo esto se guarda en la base de datos, ahora lo que necesitaba es que se pudieran poner scripts tambien dentro de ese html para hacerlo mas dinamico  pero ya veo que parece que no se puede, porque he preguntado en varios foros y nadie sabe como,  

la idea final era simular el html que traia de la base de datos con scripts como si estuviera escrito fisicamente en el codigo html de la pagina. Seguiré buscando como hacerlo. Muchísimas gracias

salu2  ;)

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #8 en: Martes 21 de Junio de 2005, 23:56 »
0
Hola bueno ya se me aclara lo que intentas hacer pero la idea de un CMS o llamado tambien Content Managment System es la de preveer un entorno de administracion para un sitio en donde el usuario final (puede ser cualquier persona) y de entrada no tiene porque saber programar para agregar codigo, no lo veo muy apropiado, aparte si deseas eso el uso generalmente tendras que realizarlo tu ya que como te dije el codigo tendra que estar muy limpio ahora que dar ese nivel de acceso a un usuario es muy riesgoso, si puedes ejecutar codigo puedes hacer y deshacer todo tu sitio, bueno y no es que no se pueda (en realidad se puede pero bueno es opinion mia no pero no lo veo muy conveniente, supongo tendras tus razones), como te dije si quieres hacer eso entonces tranquilamente lo realizas con CodeDom y usando controles que de usuario para las secciones que quieres y a los controles colocas las llamadas respectivas al Codigo

Nos vemos
Suerte
 :comp:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

equiss

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #9 en: Miércoles 22 de Junio de 2005, 05:22 »
0
Para dar un ejemplo aún más claro de lo que estoy haciendo mi cms, tiene una clase con las siguientes propiedades:

TopPane
LeftPane
Middle Pane
RightPane
BottomPane

Tengo una interfaz echa con editores html que permite agregar paginas nuevas, no fisicamente sino en la base de datos agregando contenigo en cada panel y las llamo con un id, bueno pero necesito que ademas se pueda ejecutar scripts de lado del servidor,

Por ejemplo digamos que agrego una pagina nueva por la interfaz que ya esta echa y en el LeftPane agrego este codigo

<table>
<tr>
<td><h3>Secciones</h3>
<%ShowSection(section);%>
</td>
</tr>
</table>

ShowSection(xsl)

Es una funcion que tengo que llama lista de secciones del sitio en formato xml, le aplica un xsl, que es el parametro que se la pasa y la devuelve como html. Asi que apareceria en el LeftPane la lista de secciones con el diseño que se le dio en el xsl, ahora porque no lo escribo fisicamente en la pagina, porque es un sitio muy dinamico, mañana puede quererse que la lista de secciones aparezca en el RightPane entonces tendría que conectarme por ftp abrir la pagina y modificarla fisicamente, estoy hablando solo del html de la pagina no me refiero a modificar la dll porque los scripts no necesitan ser compilados, solo son llamadas a funciones que devuelven string fortameada como html. Osea habria dos niveles de render

1.   Se llama a lo que hay en base de datos para esa pagina.
2.   Se hace render en el html extraido y se ejecutan sus llamadas a la base de datos.

Mi duda con el CodeDom, es que no se si se puede solo ejecutar el script y coger lo que devuelva o es necesario compilarlo y meterlo en la dll, recuerda que lo que saco de la base de datos es html que dentro tiene scripts no es un procedimiento limpio para compilar, sigo preguntanto porque ya llevo dos semanas a tiempo completo en esto, he probado varias cosas pero nada, mi esperanza es que alguien haya hecho algo parecido y me ayude.

Te sigo agradeciendo Kev por haberme estado ayudando. Ah, el sitio no es un cms para hacerlo publico, lo voy a administrar yo mismo, pero los requerimientos son estos, que se pueda modificar todo el contenido y cambiar los distintos bloques de lugar, sin tener que acceder a la pagina fisicamente.

Salu2 :hola:

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Render Un Bloque De Texto
« Respuesta #10 en: Viernes 24 de Junio de 2005, 20:16 »
0
Te entiendo man, bueno haber vamos al problema tiene 2 posibles salidas.

1. Sugerencia, porque no intentas configurar que al momento de ingresar contenido a alguno de los paneles tambien ingreses informacion de los procedimientos a los que se hara refecencia (asi tienes mas referenciado y comentado tu codigo), ahora si la llamada a estos procedimientos no fuera uno o dos, procedimientos es decir, si fuera que puede existir tanto 0 o n procedimientos entonces create otra tabla con los procedimientos a realizar y cada uno de estos relacionados al ID del contenido o mensaje, bueno esto se podria realizar si las opciones de procedimientos que tienes sea finita (que conozcas o puedas dar la opcion del procedimiento a llamar y la cantidad de estos).

2. Si quieres si quieres si o si que funcione de la forma que pides entonce tendras que crear un procedimiento que analize tu contenido luego interceptas los el contenido que sea codigo y como conoceras que tipo de llamadas podran ser entonces escribes el archivo que usaras para CodeDom(es decir un archivo que contenga un codigo con la estructura de las posibles llamadas a funciones que necesites y luego compilas claro.. ), luego llamas haciendo uso de CodeDom el que te devolvera el contenido, etc... pero lo digo y lo repito que esta opcion no es muy estable ya que tus llamadas(del contenido) no tendran que tener errores, ahora como te dije CodeDom te permite hacer maravillas pero tienes que tener en cuenta que esto "Se Compila y tu aplicacion no sera tan repida", por eso que CodeDom se usa para casos excepcionales e incluso para optimizar se lanza el procedimiento en threads aparte de forma que no afecte a la aplicacion (ahi cuidado con que tu hilo nunca acabe y satures tu servidor).

Lo del XSL y muestra no hay lio y es cosa aparte de tu aplicacion ya que a todo esto solo realizas una llamada.

Ahora sip nos vemos
 :comp:  :hola:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax