AsyncPostbackTrigger, EventName ed Evento di default

by Andrea 30 August 2007 20:08

Nell'AsyncPostbackTrigger c'è la possibilità di non valorizzare la proprietà EventName. Se EventName non viene valorizzato verrà usato l'evento di default del controllo specificato nel trigger.

Per i controlli di ASP.NET 2.0 gli eventi di default sono i seguenti:

  • Button --> Click
  • Calendar --> SelectionChanged
  • CheckBox --> CheckedChanged
  • GridView --> SelectedIndexChanged
  • TextBox --> TextChanged

Ma come facciamo a specificare quale sarà l'evento di default di un nostro UserControl?
Lo si fà usando l'attributo DefaultEventAttribute e specificandolo nella classe del nostro UserControl nel seguente modo:

[DefaultEventAttribute("Tick")]
public class Timer : Control
{
[...]
} 

In questo modo, nel caso non venga specificato l'EventName nel trigger, l'attributo DefaultEventAttribute indicherà al trigger a quale evento agganciarsi.

Tags:

ASP.NET AJAX

Video su ASP.NET AJAX

by Andrea 25 July 2007 19:07

Alcuni di voi non se ne saranno accorti, ma a questo link “How Do I?” with ASP.NET AJAX sono disponibili (già da parecchio tempo) una serie di video che introducono e approfondiscono l'uso di ASP.NET AJAX e di alcuni dei controlli contenuti in AJAX Control Toolkit.

Credo che l'idea di questi video (e quindi di questo tipo di risorse) sia davvero ottima perché fa capire quanto semplice sia l’utilizzo di questi controlli, e permettono di guidare passo passo lo sviluppatore con semplici esempi.

E quindi thanks to Joe Stagner per questi video smile_party 

Technorati tags: ,

Tags:

ASP.NET AJAX

ASP.NET AJAX e Profile API

by Andrea 24 July 2007 21:07

Una delle novità introdotte con ASP.NET AJAX è la possibilità di interagire con estrema facilità con le Profile API di ASP.NET permettendoci di leggere e salvare dalle proprietà del profilo dell'utente corrente.

La possibilità di leggere e scrivere dal profilo è una funzionalità che  di default è disabilitata. Per abilitarla dobbiamo modificare il web.config settando a true l'attributo enable dell'elemento profileService.

<system.web.extensions>
  <scripting>
    <webServices>
      <profileService enabled="true" />
    </webServices>
  </scripting>
</system.web.extensions>

Inoltre si dovranno speficare le proprietà che vorremmo leggere e/o scrivere nel profilo specificandole negli attributi readAccessProperties per quelle in letture e in writeAccessProperties per quelle in scrittura.

<profileService enabled="true" 
  readAccessProperties="Nome,Cognome" 
  writeAccessProperties=" Nome,Cognome"/>

Nella sezione profile, infine, dovremmo specificare il tipo e il defaultValue di queste proprietà.

<profile enabled="true">
  <properties>
    <add name="Nome" 
       type="System.String"
       defaultValue="Nome"/>
    <add name="Cognome" 
       type="System.String"
       defaultValue="Cognome"/>
  </properties>
</profile>

Dopo aver eseguito questi semplici passi sarà possibile utilizzare le proprietà specificate in configurazione direttamente negli script lato client utilizzando le funzioni dateci da ASP.NET AJAX presenti in Sys.Services.ProfileService.

Per salvare i dati nelle proprietà dal profilo:

function editProfile()
{
    // Scrivo i dati nelle propretà del profilo
    Sys.Services.ProfileService.properties.Nome = 'Andrea';
    Sys.Services.ProfileService.properties.Cognome = 'Dottor';
    // Salvo i dati nel profilo
    Sys.Services.ProfileService.save(null, OnSaveCompleted, OnProfileFailed, null);
}       
// Funzione che verrà richiamato in caso di salvataggio riuscito del profilo
function OnSaveCompleted(numProperties, userContext, methodName)
{
...
}
// Funzione chiamata in caso di errore nel salvataggio del profilo
function OnProfileFailed(error_object, userContext, methodName)
{
...
}

Per leggere dalle proprietà del profilo:

function LoadProfile()
{
  // Chiamo il caricamento del profilo
    Sys.Services.ProfileService.load(null, OnLoadCompleted, OnProfileFailed, null);
}
// Funzione che verrà richiamato in caso di caricamento riuscito del profilo
function OnLoadCompleted(numProperties, userContext, methodName)
{
  var _nome = Sys.Services.ProfileService.properties.Nome;
  var _cognome = Sys.Services.ProfileService.properties.Cognome;
  ...    
}
// Funzione chiamata in caso di errore nel salvataggio del profilo
function OnProfileFailed(error_object, userContext, methodName)
{
...
}

Come si nota, con poche e semplice righe possiamo interagire con le Profile API di ASP.NET direttamente dagli script lato client, potendo così arricchire la UI di una nuova interazione con l'utente, ed il tutto con una facilità estrema.

Potete trovare un tutorial sull'uso del Profile direttamente a questo link: http://ajax.asp.net/docs/tutorials/UsingProfileInformationTutorial.aspx

Technorati tags: ,

Tags:

ASP.NET AJAX

Meeting ASP.NET AJAX, online codice e slide

by Andrea 18 July 2007 23:07

A questo indirizzo Community Meeting: ASP.NET AJAX 1.0 trovate disponibili per il download se slide e il codice di esempio utilizzate nel meeting che ho tenuto con Davide Vernole su ASP.NET AJAX.

Per quanto riguarda il codice vi consiglio di utilizzare il database SQL che trovate all'interno dello zip prima di lanciare lo starter kit. Questo perchè lo starter kit, se non trova il db, vi chiede di creare quello di default (che comunque funziona), ma usando quello nello zip, e modificando adeguatamente la ConnectionString nel web.config vi troverete con caricati gli stessi prodotti, immagini e testi visti negli esempi. :D

Per i link comunicati/visti durante il meeting vi rimando a questo post.

Per eventuali domande, non dovete fare altro che scrivere ;)

Tags:

ASP.NET AJAX | XeDotNet

AJAX Control Toolkit Tabs, nascondere un TabPanel

by Andrea 06 July 2007 11:07

Da un post fatto nei newsgroup sono venuto a conoscenza di uno strano comportamento che affligge i TabPanel del controllo Tabs degli AJAX Control Toolkit e ho trovato un semplice workaround.
CropperCapture[5]

Infatti, se dovete nascondere un tab, viene spontaneo usare la proprietà Visible del TabPanel da nascondere ( e direi che la cosa, a mio avviso, sarebbe una cosa ovvia) ma non è così.
Impostando a false la proprietà Visible del primo TabPanel (per esempio), il tab viene correttamente nascosto, ma rimane visibile il testo contenuto nel HeaderText.

TabPippo.Visible = false;
CropperCapture[6]

Per risolvere questo inconveniente, al posto di utilizzare la proprietà Visible usate la proprietà Enabled, che farà nascondere completamente il tab in questione.

TabPippo.Enabled = false;
CropperCapture[7]

Il perchè di questi comportamenti non me lo spiego... Quello che mi sarei aspettato invece è che la proprietà Visible, se impostata a False, nascondesse completamente il tab, mentre l'Enabled a True che mi disabilitasse il click in modo da non poter abilitare quel TabPanel (e il tab dovrebbe rimanere visibile), ma forse sarebbero stati dei comportamenti troppo normali.

...ma l'importante è conoscerli ed eventualmente trovare dei workaround come questo (in tempi brevi).... ;)

Tags: , , ,

ASP.NET AJAX

Di ritorno dal meeting - ringraziamenti e link

by Andrea 30 June 2007 03:06

ajax_detersivo_small Sono appena rientrato a casa dal dopo meeting e per prima cosa ringrazio tutti i partecipanti e mi dispiace per la fretta nel presentare l'ultima parte, ma il tempo è sempre poco e trattare un argomento così vasto in solo 2 ore di tempo è stata una quasi una sfida.

Un grazie a Davide, perchè assieme credo siamo riusciti a preparare proprio una bella sessione, e un grazie anche ad Andrea per l'organizzazione di questi eventi. Grazie!!

Vi avevo promesso il link della toolbar per IE che vi ho consigliato durante il meeting, ed eccolo qui: Web Development Helper scritta da Nikhil Kothari.

[Update del 03.07.2007]
Se il link per scaricare la barra non vi funziona, è raggiungibile anche a questo link:
http://www.nikhilk.net/Project.WebDevHelper.aspx 
[/Update]

Un altro link da segnalare è il ASP.NET AJAX JavaScript Class Browser scritto da Eilon Lipton.
Gli esempi di codice e le slide saranno on-line al più presto e li troverete nella sezione riguardante questo meeting.

Se avete dubbi o domande, non esitate a scrivermi, e il contatto mail visualizzato nella slide dei contatti è anche il mio indirizzo per Windows Live Messenger, quindi se c'è bisogno non dovete fare altro che aggiungermi alla lista dei vostri contatti. smile_wink

Technorati tags: , , ,

Tags:

ASP.NET AJAX | XeDotNet

A volte la fretta... nuova release per AJAX Control Toolkit

by Andrea 21 June 2007 08:06

Questa proprio non me la spiego, o meglio, me la spiego pensando che la versione 1.0.10606 dei AJAX Control Toolkit doveva avere proprio parecchi buchi... e questo perchè il 18 di questo mese è stata rilasciata in Release una nuova versione, la 1.0.10618.

Come il solito, per il download e per la lista dei task completati in questa release è visibile nel sito di codeplex a questa pagina: AJAX Control Toolkit 1.0.10618

A volte la fretta di pubblicare una nuova release porta a questo (a volte anche altro), e quante volte ci siamo caduti anche noi?
E non vi dico quando si tratta di un'aplicazione già online e dover pubblicare il venerdì per "richieste urgenti del cliente"... credetemi, mi sono promesso di non pubblicare più di venerdì, e questo perchè murphy ci ha messo troppe volte lo zampino.

Technorati tags:

Tags:

ASP.NET AJAX

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

AJAX Control Toolkit nuova release 1.0.10606.0

by Andrea 07 June 2007 08:06

Ancora in pochi se ne saranno accorti, ma ieri 06.06.2007 è stata rilasciata una nuova versione degli AJAX Control Toolkit (e credo farà piacere a molti).smile_party

In questa nuova versione, sono stati corretti parecchi bug e aggiunte alcune funzionalità. Non ve li stò ad elencare perchè la lista è parecchio lunga, ma potete vederli in questa pagina dove troverete l'elenco dei Work Items chiusi in questa release.

Per il download eccovi il link: AJAX Control Toolkit 1.0.10606.0 download
Link progetto: AJAX Control Toolkit

Tags:

ASP.NET AJAX

AJAX Control Toolkit - Accordion

by Andrea 30 May 2007 12:05

E' uscito su XeDotNet un mio articolo dove parlo del controllo Accordion, contenuto all'interno di ASP .NET AJAX Control Toolkit.

Riporto l'abstract dell'articolo:

L'Accordion è uno dei controlli contenuti nel AJAX Control Tollkit. La caratteristica di questo controllo è l a possibilità di contenere diversi pannelli (AccordionPane) e permettere la visualizzazione di solo uno di questi per volta.

E aggiungerei che l'accordion ha anche alcune caratteristiche veramente interessanti, una di queste è la possibilità di essere collegato ad una fonte dati per creare e popolare i suoi panel.

Ricordo inoltre che il 29 giugno terrò con Davide Vernole una sessione che toccherà anche questi argomenti, e le iscrizioni sono aperte.

Link all'articolo: AJAX Control Toolkit - Accordion
Link al meeting: Community Meeting: ASP.NET AJAX 1.0

Tags:

ASP.NET AJAX | XeDotNet