Creare un Control Extender, da dove cominciare

by Andrea 19 June 2007 23:06

AspNetAjax Se avete intenzione di cimentarvi a creare un Control Extender sappiate che la cosa è più semplice di quello che credete.

Per cominciare vi consiglio alcuni link:
Il primo è un tutorial che trovate nel sito di ASP .NET AJAX e vi guiderà passo passo: Creating a new extender

Un'altra risorsa molto utile è il webcast tenuto da :
ASP.NET 2.0 AJAX: Extending ASP.NET AJAX

Ed infine il link al progetto AJAX Control Toolkit. All'interno del progetto scaricato è disponibile anche il pacchetto di installzione per aggiungere il template per creare un Control Extender (il file si chiama AjaxControlExtender.vsi) e permetterà di creare in automatico i file necesssari allo sviluppo di un Extender (file *Behavior.js, *Designer.cs ed *Extender.cs): AJAX Control Toolkit

Tags: , , , ,

ASP.NET AJAX

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