ASP .NET AJAX e validazione di controlli aggiunti in un postback

by Andrea 21 March 2007 22:03

Se avete provato a validare controlli inseriti in un postback all'interno di un UpdatePanel, vi sarete accorti che la cosa non funziona e nemmeno genera errori.
La storia è semplice, l'UpdatePanel renderizza solamente il suo contenuto e non aggiorna le altre pagine della pagina, che nel caso dei validatori avrebbero contenuto degli script per agganciare il validatore al controllo.
Matt Gibbs, che fa parte del team di sviluppo di ASP .NET AJAX ci è venuto in contro e ha modificato il codice dei validatori facendo si che gli script necessari venissero registrati nella pagina tramite lo ScriptManager.
A questo link trovate un suo post sull'argomento e sono disponibili i sorgenti dei validatori modificati e pronti per il download.

Per sostituire i validatori, è sufficente referenziare la dll contenente i validatori modificati ed aggiungere nella sezione pages del Web.config questa sezione tagMapping:

<tagMapping>
    <add tagType="System.Web.UI.WebControls.CompareValidator"
        mappedTagType=" Sample.Web.UI.Compatibility.CompareValidator, Validators, Version=1.0.0.0"/>
    <add tagType="System.Web.UI.WebControls.CustomValidator"
        mappedTagType=" Sample.Web.UI.Compatibility.CustomValidator, Validators, Version=1.0.0.0"/>
    <add tagType="System.Web.UI.WebControls.RangeValidator"
        mappedTagType=" Sample.Web.UI.Compatibility.RangeValidator, Validators, Version=1.0.0.0"/>
    <add tagType="System.Web.UI.WebControls.RegularExpressionValidator"
        mappedTagType=" Sample.Web.UI.Compatibility.RegularExpressionValidator, Validators, Version=1.0.0.0"/>
    <add tagType="System.Web.UI.WebControls.RequiredFieldValidator"
        mappedTagType=" Sample.Web.UI.Compatibility.RequiredFieldValidator, Validators, Version=1.0.0.0"/>
    <add tagType="System.Web.UI.WebControls.ValidationSummary"
        mappedTagType=" Sample.Web.UI.Compatibility.ValidationSummary, Validators, Version=1.0.0.0"/>
</tagMapping>

In questo modo, i validatori dichiarati come <asp:CompareValidator .../> e gli altri, saranno ridirezionati nel nuovo namespace (nell'assembly appena aggiunto).
Occhi quando vi trovate nel codebehind al namespace che state usando, controllate di puntare effettivamente alla nuova dll.

E tutto questo vale per:

  • CompareValidator
  • CustomValidator
  • RangeValidator
  • RegularExpressionValidator
  • RequiredFieldValidator
  • ValidationSummary

Devo ammettere che ha fatto proprio un buon lavoro, e gli faccio i miei complimenti perchè sarebbe stata una grave mancanza non avere la validazioni in controlli aggiunti dinamicamente in un postback.

Technorati tags: ,

Tags: , , , ,

ASP.NET AJAX

AJAX Control Toolkit - ConfirmButtonExtender in una colonna di cancellazione

by Andrea 21 March 2007 13:03

Queste sono le cose che mi piacciono, quando con poche righe di codice si risolve immediatamente un problema. Infatti con una riga di markup è possibile aggiungere ad un button una messagebox di conferma, che io utilizzo (ad esempio) quando devo eseguire delle cancellazioni, e tutto grazie al ConfirmButtonExtender. (così non serve neanche scrivere javascript) In questo esempio, ho usato il ConfirmButtonExtender in una colonna di cancellazione creamdomi un colonna con un TemplateField.

<asp:TemplateField > 
   <ItemTemplate> 
        <asp:LinkButton 
            CommandName="delete" 
            runat="server" 
            ID="deleteRecord" 
            Text="delete" /> 
        <ajaxControlToolkit:ConfirmButtonExtender 
            ID="bDeleteExtender" 
            runat="server"
            TargetControlID="deleteRecord" 
            ConfirmText="Sicuro di voler cancellare?" /> 
   </ItemTemplate> 
</asp:TemplateField>
 Bello, semplice e funziona

Tags: , ,

ASP.NET AJAX

Percorso formativo ASP.NET AJAX

by Andrea 20 March 2007 12:03

Per chi non avesse letto la newsletter di XeDotNet, oppure non se ne fosse accorto, segnalo che il 22 marzo ha inizio un vero e proprio percorso formativo su ASP.NET AJAX, con una serie di webcast tenuti da Davide Vernole.

Ecco l'abstract:

Con ASP.NET AJAX puoi cambiare la user experience delle tue applicazioni Web. Puoi creare velocemente una nuova generazione di applicazioni più efficienti, interattive e altamente personalizzabili in grado di fornire una nuova esperienza nella navigazione Web utilizzando i più comuni browser. Impara come eseguire l’installazione, prendi confidenza con i suoi controlli, esplora il Control Toolkit e, infine, approfondisci tutte le sue potenzialità: la creazione di script personalizzati, l’utilizzo di Web Service, la localizzazione e la globalizzazione. Inoltre, potrai imparare come creare un controllo o un componente per estendere il framework.

ed ecco il link: percorso formativo su ASP.NET AJAX.

Technorati tags: , ,

Tags:

ASP.NET AJAX

Ajax Control Toolkit su google e...

by Andrea 16 March 2007 15:03

...e nella prima pagina compaio anch'io. smile_teeth

Ebbene si! Se andate su google e provate a cercare Ajax Control Toolkit, nella prima pagina, al penultimo posto esco anch'io con un mio post (Ajax Control Toolkit e javascript compressi).

Se volete provare la ricerca.

Che anche google sappia che questa tecnologia mi sta appasionando?!? smile_wink

Technorati tags: ,

Tags:

ASP.NET AJAX

Ajax Control Toolkit e javascript compressi (finalmente)

by Andrea 09 March 2007 00:03

A proprosito del problema delle dimensioni dei file javascript di cui anche Andrea Boschin ha parlato in questo post, oggi, leggendo meglio un post di Scott Guthrie scopro una bellissima novità introdotta nell'ultima release dei Ajax Control Toolkit, e precisamente questo:

JavaScript comment/whitespace stripping - When compiled in "Release" mode, all of the JavaScript files in the Toolkit now automatically have all comments and unnecessary whitespace removed. This can reduce the download size of the scripts by over 50%. This is implemented as an automated MSBuild task that you can take and use within your own ASP.NET AJAX projects to streamline your custom JavaScript sizes as well (I'll blog about how to use the MSBuild task in the next few days).

Ebbene, nella nuova release, se il tutto è in modalità "Release" i file javascript finalmente vengono compressi (vengono eliminati i commenti e tolti gli spazi vuoti), facendo risparmiare così un bel pò di Kb.
Ora non mi resta che vedere con i miei occhi che veramente sia così. Comunque, sono felice che anche qualcun'altro si sia reso conto di questo problema e abbia iniziato a risolverlo.

Tags:

ASP.NET AJAX

AJAX Control Toolkit versione 1.0.10301.0

by Andrea 06 March 2007 14:03

Il 1 marzo è uscita una nuova versione di "AJAX Control Toolkit".
In questa release sono stati risolti parecchi bug e sono stati aggiunti 2 nuovi extender (ListSearch e SlideShow). Andando nella pagina del progetto su codeplex è possibile vedere il Change Log completo.

Ed ecco la descrizione di questa release:

2007-03-01 release of the AJAX Control Toolkit includes two new controls (ListSearch and SlideShow), a number of fixes identified as important by the community, and three significant enhancements: localization support, automatic JavaScript comment stripping, and ASP.NET theme/skin support. It continues to target the new ASP.NET AJAX v1.0 release (http://ajax.asp.net/).
...

Una critica però la voglio fare: smile_teeth
i Control Toolkit sono pratici e fanno risparmiare la scrittura di un bel pò di codice, ma hanno un peso non indifferente. Per fortuna non sono pigro, e mi sono compresso i file javascript a manina prima di compilare la dll in release, ed in questo modo, qualke Kb è andato risparmiato.

Comunque, complimenti alle persone che lavorano su questo progetto perchè è proprio una gran bella libreria. smile_wink

Technorati tags:

Tags:

.NET | ASP.NET AJAX

ASP.NET AJAX ScriptManager e la proprietà ScriptMode

by Andrea 22 February 2007 15:02

Prestate molta attenzione al valore che assegnate a questa proprietà!

In questi ultimi giorni, nella fase di debug di un portale, ci siamo resi conto che il peso della prima pagina scaricata era notevole.
Guardando tra i file, ci siamo accorti che veniva scaricato un file javascript da più di 250KB e aprendolo, scopriamo che il file non è altro che il javascript di MicrosoftAjax. smile_confused

Tutto ciò, è dovuto al fatto che Ajax ha gli script in modalità di debug.
Infatti, la proprietà ScriptMode di default è impostata su Auto, e queto stà a dire che

  • se nel Machine.config abbiamo <deployment retail="false" /> o non abbiamo l'elemento deployment specificato, gli script saranno nella modalità di debug,
  • se nel Machine.config abbiamo <deployment retail="true" /> gli script saranno in release.
  • se specifichiamo esplicitamente nella proprietà ScritpMode, gli scritp saranno nella modalità voluta:
    ScriptMode = "Release"
    ScriptMode = "Debug"

Questo farà passare il file javascript ad una dimensione di 82KB.smile_party

Mi raccomando, prestate attenzione perchè 200KB risparmiati sul web sono veramente importanti.

Technorati tags: ,

Tags:

.NET | ASP.NET AJAX

Ajax ASP.NET - Errore Tabs dentro un UpdatePanel

by Andrea 25 January 2007 12:01

La versione RTM di Ajax Asp.Net è uscita da poco e quindi ho deciso di integrarli nel progetto in cui stò lavorando, magari rimpiazzando quelli di terze parti (a pagamento).

Un controllo che mi è subito piaciuto è il Tabs, e subito mi sono messo all'opera per sfruttarlo ma, sorpresa delle sorprese, scopro che non è possibile inserire un Tabs dentro un UpdatePanel. Infatti vi troverete un bel errore javascript dopo che avrete tentato di modificare il contenuto smile_sad.

Ecco una grossa limitazione in quanto impedisce la possibilità di creare dinamicamente i Tab...ma vabbè, vorrà dire che mi farò il controllo a manina smile_teeth, e spero che le cose si risolvano perchè sarebbe una funzionalità che non credo interessi solo a me. smile_wink

 

Technorati tags: , ,

Tags:

ASP.NET AJAX