El ambiente de trabajo sencillo, un ABM de una tabla con texto enriquecido asi que nos propusimos usar FTB (FreeTextBox), lo colocamos en dentro de un FormView y lo testeamos correctamente, hasta que se nos ocurrio la gran idea de insertar un UpdatePanel de ASP.NET Ajax, la ley de murphy se cumplia nuevamente, no renderizaba el contenido correctamente, el control se armaba pero el texto interior ni noticias.
Sintoma 1: El control lo visualizamos pero sin el contenido.
Sintoma 2: No respondia a ningun evento en sus botones o elementos (tab de modo html y modo diseño). Esto nos da un indicio que los elementos/recursos de script no estaba cargándose
Tenia algo asi…simple
<FTB:FreeTextBox ID="ftbTramiteRequisitos" runat="server" Text='<%# Bind("TramiteRequisitos") %>'> </FTB:FreeTextBox>
Probe con
<FTB:FreeTextBox ID="ftbTramiteRequisitos" runat="server" Text='<%# Bind("TramiteRequisitos") %>' ButtonImagesLocation="externalFile" JavaScriptLocation="externalFile" ToolbarImagesLocation="externalFile" SupportFolder="~/aspnet_client/FreeTextBox/" ScriptMode="InPage" > </FTB:FreeTextBox>
y otras tanta alternativas más…Pero no queria colocar en la carpeta /aspnet_client/FreeTextBox/ los archivos necesarios (imagenes, .js, . xml) ya que para ASP.NET 2.0 todos los recursos necesarios estan embebidos en el mismo componente.
Al final googleando un poco, di con dos soluciones:
- Insertar dentro de un iframe, la cual no me convencia por lo compleja 😉 (aquí esta), y otra version no tan compleja aquí
- Registrar manualmente los scripts, que justamente alguien ya lo realizo (en los foros de FTB)
Entonces la solución:
- El control: Lo dejo como estaba
<FTB:FreeTextBox ID="ftbTramiteRequisitos" runat="server" Text='<%# Bind("TramiteRequisitos") %>'> </FTB:FreeTextBox>
Este control esta dentro de un formview, y este dentro de un UserControl
(otras versiones aqui deberia estar todas las propiedades detalladas, pero en versiones recientes ya tiene asignadas valores predeterminados) - Y en la pagina donde utilizo el UserControl
Public Overrides Sub RegisterStartupScript(ByVal key As String, ByVal script As String) ScriptManager.RegisterStartupScript(Me, GetType(Page), key, Replace(Replace(script, "FTB_AddEvent(window,'load',function () {", ""), "});", ""), False) End Sub Public Overloads Sub RegisterOnSubmitStatement(ByVal key As String, ByVal script As String) ScriptManager.RegisterOnSubmitStatement(Me, GetType(Page), key, script) End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Page.ClientScript.RegisterClientScriptInclude("FTBFreeTextBox", VirtualPathUtility.MakeRelative(Request.Path, "~/aspnet_client/FreeTextBox/FTB-FreeTextBox.js")) Page.ClientScript.RegisterClientScriptInclude("FTBUtility", VirtualPathUtility.MakeRelative(Request.Path, "~/aspnet_client/FreeTextBox/FTB-Utility.js")) Page.ClientScript.RegisterClientScriptInclude("FTBToolbarItems", VirtualPathUtility.MakeRelative(Request.Path, "~/aspnet_client/FreeTextBox/FTB-ToolbarItems.js")) Page.ClientScript.RegisterClientScriptInclude("FTBPro", VirtualPathUtility.MakeRelative(Request.Path, "~/aspnet_client/FreeTextBox/FTB-Pro.js")) End If End Sub
~/aspnet_client/FreeTextBox/
Pero la puedes cambiar pero tendras que setear estas propiedades (ademas de cambiar SupportFolder si cambias la carpeta)
<FTB:FreeTextBox runat="server" Id="ftbTramitesRequisitos" SupportFolder="~/miCarpeta/FreeTextBoxRecursos" JavaScriptLocation="ExternalFile" ToolbarImages="ExternalFile" ButtonImagesLocation="ExternalFile" />
Esta parte lo hice con archivos externos. Pero desde la version 3.0 viene todo esto embebido en la .dll y solo hay que agregar el handler en el web.config solo si estas trabajando con .NET 1.1
<httpHandlers> <add verb="GET" path="FtbWebResource.axd" type="FreeTextBoxControls.AssemblyResourceHandler, FreeTextBox" /> </httpHandlers>
Hola descarge el control freetextBox, y no he logrado poder incorporarlo a mi proyecto, hago la referencia a la dll, pero nose que mas tengo que hacer… porfavor si alguien sabe que me lo diga,…pliss
Tienes que agregarlo a tu barra de herramienta.
Mira desde la las mismas entrañas de FTB
Add FreeeTextBox to Visual Studio 2005 Toolbox
http://freetextbox.com/forums/thread/8526.aspx