Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/05/2010, 04:00
Avatar de Bravenap
Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Insertar etiqueta de control personalizado en AJAX HTML Editor

Bueno, la cosa se complica. He pensado la siguiente opción: buscar en la propiedad Contenido mediante expresiones regulares la etiqueta correspondiente al control personalizado, pero hacerlo mejor tipo BBCode:

Código vb:
Ver original
  1. Contenido = "Esto es el texto que contiene etiquetas HTML y BBCode para
  2. interpretar. Por ejemplo:
  3. [cpersCuadroNotas Titulo='Título del cuadro']
  4. El cuadro de notas tiene texto y a su vez otros controles personalizados
  5. <ul>
  6. <li>[cpersDescargaDocumento NavigateUrl='Documento1.pdf' Target='_parent']Documento en PDF[/cpersDescargaDocumento]</li>
  7. <li>[cpersDescargaDocumento NavigateUrl='Documento1.doc' Target='_blank']Documento en MS Word[/cpersDescargaDocumento]</li>
  8. </ul>
  9. [/cpersCuadroNotas]"
CuadroNotas y DescargaDocumento son los controles personalizados heredados de Panel e HyperLink respectivamente y el resultado debería ser algo así:
Código HTML:
Ver original
  1. Esto es el texto que contiene etiquetas HTML y BBCode para
  2. interpretar. Por ejemplo:
  3. <ControlesPersonalizados:CuadroNotas ID="CuadroNotas_1" Runat="server" Titulo="Título del cuadro">
  4. El cuadro de notas tiene texto y a su vez otros controles personalizados
  5. <ul>
  6. <li><ControlesPersonalizados:DescargaDocumento ID="DescargaDocumento_1" Runat="server" NavigateUrl="Documento1.pdf" Target="_parent">Documento en PDF</ControlesPersonalizados:DescargaDocumento></li>
  7. <li><ControlesPersonalizados:DescargaDocumento ID="DescargaDocumento_2" Runat="server" NavigateUrl="Documento1.doc" Target="_blank">Documento en MS Word</ControlesPersonalizados:DescargaDocumento></li>
  8. </ul>
  9. </ControlesPersonalizados:CuadroNotas>
La inserción dinámica es sencilla en el evento Render
Código vb:
Ver original
  1. Dim cp As New ControlesPersonalizados.DescargaDocumento
  2.             cp.NavigateUrl = "Documento1.pdf"
  3.             cp.Target = "_parent"
  4.             cp.Text = "Documento en PDF"
  5.             cp.RenderControl(writer)
lo difícil está en saber cuándo intercalarlo antes de hacer:
Código vb:
Ver original
  1. writer.Write(Contenido)
Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!