Categorie

.Net
Photoshop
Varie

Designed by:
SiteGround web hosting Joomla Templates
.Net
Problema flickering del ModalPopupExtender PDF Stampa E-mail
Valutazione utente: / 1

In questi giorni mi sono imbattuto in un curioso problema che avevo utilizzando il ModalPopupExtender dell'AjaxControlToolkit.

Questo extender permette di visualizzare una popup di tipo modale simile a quella che si otterrebbe con javascritp richiamando il comando
alert('messaggio') con la differenza che possiamo creare finestre di qualsiasi complessità, anche per l'inserimento di dati.

Image

L'errore che veniva fuori nell'utilizzo di questo controllo era abbastanza bizzarro. Nel caricamento della pagina, veniva fatto il rendering e per un istante veniva visualizzata la popup.

Inizialmente ho provato dando nel Page_Load la proprietà visible=false al Panel legato al ModalPopupExtender, per poi impostare visible=true nel momento in cui volevo visualizzare la mia ModalPopup. Il problema sembrava risolto, la popup veniva visualizzata correttamente, ma al contrario veniva visualizzato un errore Javascript. Questo perchè avendo impostato la proprietà visible=false il controllo era inesistente per Javascript nel momento in cui si tentava di renderlo di nuovo visibile (visible=true).

Per risolvere il problema allora è stato necessario settare la visibilità del Panel attraverso i CSS. Ho creato due classi nel mio foglio di stile come di seguito:

 Image

ed ho quindi associato al Panel la classe popupHidden sul caricamento della pagina e popupShow nel momento in cui volevo visualizzare la ModalPopup.

Image

 
Wysiwyg per Asp.Net PDF Stampa E-mail
Valutazione utente: / 0

Girando per il web, ero alla ricerca di un editor HTML da utilizzare nelle pagine Web. Cercavo uno di quei controlli che facilitano

la scrittura di codice di quei tantissimi tag che a volte noi sviluppatori dimentichiamo.

Alla fine ho trovato "Freetextbox" , un editor HTML scritto in javascriptmolto conosciuto e ben documentato.

Inoltre compatibile con i browseer più conosciuti (IE, Mozilla, Firefox) e su tutte le piattaforme.

Image 

Questo strumento lo consiglio per la possibilità di customizzarlo in base alle proprie esigenze, è possibile cambiare l'aspetto,

i colori, il tema del controllo e addirittura si possono creare proprie Toolbar aggiungendo a runtime o a design-time i vari

pulsanti.

 L'installazione è abbastanza semplice :

1. apriamo il pacchetto zip contenente il nostro controllo FreeTextBox 

2. aggiungiamo il riferimento della dll alla nostra WebApplication

3. copiamo la cartella aspnet_client  e tutto il suo contenuto all'interno del nostro progetto

4. aggiungiamo alla nostra pagina *.aspx la seguente direttiva:

    <%@ Register TagPrefix="FTB" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>

5. aggiungiamo il nostro controllo:

      <FTB:FreeTextBox id="FreeTextBox1" runat="Server" />


Avviando il progetto vedremo il nostro editor HTML con tutte le se funzionalità. Basterà spratichirci un pò per poter capire

come è possibile abilitare o disabilitare le varie toolbar, cambiare lo stile del controllo, aggiungere controlli ecc.

Nel caso in cui le nostre pagine web implementino la tecnologia Ajax, ci sono alcuni piccoli accorgimenti da fare nell'inserimento

del nostro controllo FreeTextBoc. Infatti esso da alcuni problemi se utilizzato insieme ad un UpdatePanel.

Per risolvere il problema basta aggiungere poche righe di codice. Nel Load della pagina andiamo a registrare gli script del nostro controllo :

protected void Page_Load(object sender, EventArgs e)
{
  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"));
}
 

e poi aggiungere questi due metodi :

 
public new void RegisterOnSubmitStatement(string key, string script)
{
  ScriptManager.RegisterOnSubmitStatement(this, typeof(Page), key, script);
}
 
[Obsolete]
public override void RegisterStartupScript(string key, string script)
{ 
  string newScript = script.Replace("FTB_AddEvent(window,'load',function () {", "").Replace("});", "");
  ScriptManager.RegisterStartupScript(this, typeof(Page), key, newScript, false);
}