Controllo Calendar e Z-Index

by andrea 20 November 2008 09:15

A volte le cose banali sono quelle che fanno perdere maggior tempo. Chissa che quindi questo post faccia risparmiare qualche minuto a qualcuno di voi. ;)

Oggi mi sono trovato alle prese con il controllo Calendar degli AJAX Control Toolkit, che si posizionava al di sotto del div contenente le google maps.
  
Controlando con la Developer Toolbar avevo verificato l'impostazione dello z-index, che era impostato correttamente a 1000. L'unico dubbio che avevo era a riguardo della proprietà, che mi veniva chiamata zIndex (senza il trattino), ma ho pensato che fosse comunque valido. Calendar_index_0Calendar_index_2
Dopo vari test, mi sono detto di provare a settare correttamente lo z-index impostando io lo stile, ed effettivvamente il problema si è risolto. :D

.ajax__calendar_container
{
    z-index: 1000;
}

Calendar_index_1

Tags:

ASP.NET AJAX | ASP .NET

AutoComplete Extender - alcuni workaround

by Andrea 04 April 2008 14:04

BoxRicercaStò utilizzando il controllo AutoComplete Extender, contenuto negli Ajax Control Toolkit, e mi sono trovato ad affrontare diversi problemi dovuti a bug del controllo ed altri dovuti a problemi con IE6.
Voglio però sottolineare che grazie alla flessibilità di questi controlli, sono riuscito facilmente a trovare alcuni workaround senza dover scrivere montagne di codice.

Nella mia applicazione mi trovo ad avere un controllo TextBox a cui è collegato l'AutoComplete Extender (per agevolare l'inserimento del testo), e posizionati subito sotto sono presenti alcune DropDownList.

Iniziamo dal primo problema:
con IE6, all'apertura del pannello dell'AutoComplete Extender, le DropDownList rimangono in primo piano, "bucando" il pannello.
La soluzione che ho trovato è stata quella di intervenire nelle animations, inserendo alcuni ActionScript che nascondono le DropDownList quando il pannello si apre, e le rivisualizzano non appena il pannello si stà chiudendo. In questo modo, l'AutoComplete Extender sarà visualizzato senza problemi grafici.

Altro problema:
alla chiusura del pannello non riuscivo più a modificare il valore delle DropDownList perchè il pannello viene nascosto impostando lo stile visibility, che lo fa quindi mantere in primo piano, bloccando l'accesso ai controlli posti sotto.
La soluzione più veloce è stata quella di intervenire anche qui nelle ActionScript, recuperandomi l'oggetto del pannello (che ha l'ID composto da BehaviorID__completionListElem) e settandogli la proprietà display a none. Facendo così, il pannello non risulta più essere in primo piano, e si ha l'accesso ai controlli in precedenza bloccati.

Ecco qui il codice per risolvere questi due problemi:

<ajaxToolkit:AutoCompleteExtender 
    runat="server" 
    BehaviorID="AutoCompleteEx" 
    ID="autoComplete1"
    TargetControlID="CittaCod" 
    ServiceMethod="GetCityList" 
    ServicePath="~/Services.asmx"
    MinimumPrefixLength="2" 
    CompletionInterval="1000" 
    FirstRowSelected="true" 
    EnableCaching="true"
    CompletionSetCount="20" 
    CompletionListCssClass="autocomplete_completionListElement"
    CompletionListItemCssClass="autocomplete_listItem" 
    CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem">
    <Animations>
    <OnShow>
        <Sequence>
            <OpacityAction Opacity="0" />
            <HideAction Visible="true" />
            <ScriptAction Script="
                var behavior = $find('AutoCompleteEx');
                if (!behavior._height) {
                    var target = behavior.get_completionList();
                    behavior._height = target.offsetHeight - 2;
                    target.style.height = '0px';
                }" />
            <Parallel Duration=".4">
                <FadeIn />
                <Length PropertyKey="height" 
                        StartValue="0" 
                        EndValueScript="$find('AutoCompleteEx')._height" />
            </Parallel>                                
            <ScriptAction Script="                 
                var ddlPrezzoMin = $get(ddlPrezzoMinID);
                var ddlPrezzoMax = $get(ddlPrezzoMaxID);
                var ddlMqMin = $get(ddlMqMinID);
                var ddlMqMax = $get(ddlMqMaxID);
                
                ddlPrezzoMin.style.visibility = 'hidden';
                ddlPrezzoMax.style.visibility = 'hidden';
                ddlMqMin.style.visibility = 'hidden';
                ddlMqMax.style.visibility = 'hidden'; 
                " />
        </Sequence>
    </OnShow>
    <OnHide>
        <Sequence>
            <ScriptAction Script="    
                var ddlPrezzoMin = $get(ddlPrezzoMinID);
                var ddlPrezzoMax = $get(ddlPrezzoMaxID);
                var ddlMqMin = $get(ddlMqMinID);
                var ddlMqMax = $get(ddlMqMaxID);
                
                ddlPrezzoMin.style.visibility = 'visible';
                ddlPrezzoMax.style.visibility = 'visible';
                ddlMqMin.style.visibility = 'visible';
                ddlMqMax.style.visibility = 'visible';
                
                var autoCompleteElement = $get('AutoCompleteEx_completionListElem');
                autoCompleteElement.style.display = 'none';                                    
                " />
            <Parallel Duration=".4">
                <FadeOut />
                <Length 
                    PropertyKey="height" 
                    StartValueScript="$find('AutoCompleteEx')._height" 
                    EndValue="0" />
            </Parallel>
        </Sequence>
    </OnHide>
    </Animations>
</ajaxToolkit:AutoCompleteExtender>

 

Tags: , , , ,

ASP.NET AJAX

ASP.NET 2.0 AJAX - Usare ASP.NET AJAX in siti preesistenti

by Andrea 19 November 2007 23:11

Vi segnalo che giovedì 22 novembre alle ore 14.30 terrò un webcast su come inserire e utilizzare ASP.NET AJAX in siti preesistenti.

Se non vi siete ancora registrati il link è il seguente: REGISTRAZIONE

Ho scelto di tenerlo come Livello 200 perché frequentando i newsgroup ho notato che parecchie delle domande su ASP.NET AJAX riguardavano per l'appunto questo argomento, e spero quindi di poter essere d'aiuto a parecchi.

Vi aspetto numerosi. smile_wink

Technorati Tags: ,

Tags:

ASP.NET AJAX

Community Meeting: Web Development Ways

by Andrea 08 November 2007 23:11

Venerdì 16 novembre a Mestre ci sarà il prossimo community meeting di XeDotNet e gli argomenti saranno la customizzazione di DotNetNuke e ASP.NET AJAX Futures.
La prima sessione sarà tenuta da Davide Senatore mentre la seconda spetta a me. ;) State certi che non vi annoierete!

A questo link trovate il programma: Web Development Ways

Lo sviluppo di applicazioni web è una attività che impegna sempre più risorse per molte aziende. In questo meeting abbiamo deciso di affrontare due argomenti apparentemente molto diversi, la customizzazione di DotNetNuke e i futures di ASP.NET AJAX. La nota piattaforma open source e le novità imminenti di AJAX in realtà condividono il medesimo spirito di framework capaci di dare con facilità feature interessanti e di farci risparmiare tempo nello sviluppo. Davide Senatore e Andrea Dottor si alterneranno ad illustrarci con dovizia di particolari questi argomenti.

Se non vi siete ancora registrati, eccovi il link: REGISTRAZIONE

Tags:

ASP.NET AJAX | XeDotNet

Codice e slide del meeting su ASP.NET AJAX a Pordenone

by Andrea 17 October 2007 22:10

Nel sito di XeDotNet sono state pubblicate le slide e il codice degli esempi utilizzati nel meeting tenuto a Pordenone su ASP.NET 2.0 AJAX, organizzato dall'associazione 1nn0va.

Il link per il download è: Evento ASP.NET 2.0 AJAX a Pordenone

Per quanto riguarda il codice degli esempi, all'interno del zip che scaricherete ho inserito anche alcuni esempi aggiuntivi dove è possibile vedere anche l'uso dei web services e dei page method, che visto l'interesse avevo fatto vedere durante il meeting.

Vi ricordo che per qualsiasi domanda, o ulteriori esempi, non dovete fare altro che contattarmi e vi risponderò volentieri.

Technorati Tags: , , ,

Tags:

ASP.NET AJAX | XeDotNet

Codice e slide del webcast ASP.NET 2.0 AJAX - Tips & Tricks

by Andrea 16 October 2007 18:10

Come promesso, ecco pubblicato a questo link le slide ed il codice usato per il webcast in oggetto.

Segnalo che da qualche giorno è possibile registrarsi per il mio prossimo webcast direttamente a questo link ASP.NET 2.0 AJAX - Usare ASP.NET AJAX in siti preesistenti che si terrà il 22 novembre alle 14.30.
Ed ecco l'abstract:

ASP.NET AJAX permette di introdurre nelle nostre applicazioni web una nuova user experience, conferendo ad esse una maggiore interattività e usabilità nei confronti dell'utente finale. Una delle necessità principali sarà quella di dotare di queste funzionalità delle applicazioni preesistenti. In questo Webcast verranno appunto affrontate le problematiche derivanti da questa attività.

Technorati Tags: ,

Tags:

ASP.NET AJAX | XeDotNet

ASP.NET AJAX e l'accessibilità

by Andrea 05 October 2007 20:10

immagine_accessibilita Ecco il primo di una serie di post che avranno come argomento "l'accessibilità nei siti con ASP.NET AJAX", cosa che intendo approfondire e analizzere post per post.

Questo tema non nasce a caso, ma bensì da una domanda che mi ha posto un mio collega, dove mi ha chiesto se le applicazioni sviluppate con ASP.NET AJAX rispondessero ai requisiti di accessibilità.
Ammetto che per un attimo mi ha messo in difficoltà.

Ma vediamo in breve cosa vuol dire "accessibilità di un sito internet"?

Un sito internet è accessibile quando i suoi contenuti sono raggiungibili e fruibili da chiunque, in maniera il più possibile indipendente dalle abilità dell’utente e dagli strumenti tecnologici di cui dispone. Ricordiamoci che in queste categorie di persone, fanno parte anche utenti con problemi alla vista (come cecità e daltonismo), problemi all’udito, dislessia e problemi motori(soprattutto degli arti superiori).

Riporto alcuni casi di utenti presi dalle linee guida del w3c:

  • Possono non essere in grado di vedere, ascoltare o muoversi o possono non essere in grado di trattare alcuni tipi di informazioni facilmente o del tutto.
  • Possono avere difficoltà nella lettura o nella comprensione del testo.
  • Possono non avere o non essere in grado di usare una tastiera o un mouse.
  • Possono avere uno schermo solo testuale, un piccolo schermo o una connessione Internet molto lenta.
  • Possono non parlare e capire fluentemente la lingua in cui il documento è scritto.
  • Possono trovarsi in una situazione in cui i loro occhi, orecchie o mani sono occupati o impediti (ad es., stanno guidando, lavorano in un ambiente rumoroso, ecc.).
  • Possono avere la versione precedente di un browser, un browser completamente diverso, un browser basato su dispositivi di sintesi vocale o un diverso sistema operativo

Per capire quali siano i punti e le tappe per rendere un sito accessibile, vi segnalo alcuni link che definiscono ed approfindiscono l'argomento.

Ciò che ho detto finora riguarda i siti in generale, ma come si comportano quelli sviluppati utilizzando la tecnologia AJAX?

Visto che la prima risposta è quella che conta, dico che con l'utilizzo di AJAX  è possibile avere siti accessibili.
Dico "è possibile" in qunto la tecnologia AJAX di certo non aiuta questo fattore a causa del suo principale comportamento,  quello di  causare un aggiornamento parziale della pagina senza ricaricarla (eseguendo un postback asincrono invece del classico postback). Questo può dare problemi ai browser usati dalle persone non vedenti in quanto quel tipo di browser (lettori testuali) non riesce a riconoscere che la pagina è stata aggionata (parzialmente), oppure può non essere immediato riconoscere la parte di testo aggiornata da parte di persone che hanno difficoltà cognitiva.
Nel descrivere (brevemente) questi problemi, ho usato il condizionale, in quanto possono essere risolti usando alcuni accorgimenti in fase di sviluppo, come il segnalare l'update della pagina oppure l'evidenziare la porzione di pagina aggiornata (sono solo alcuni esempi veloci).

Quindi la risposta alla domanda "ma i siti sviluppati con ASP.NET AJAX rispondono ai requisiti di accessibilità?" posso rispondere che il tutto dipende dagli sviluppatori che li realizzano, e comunque la cosa è possibilissima e fattibile senza molto sforzo.

Nei prossimi post inizieremo ad andare in dettaglio affrontando una ad una queste problematiche.

Technorati Tags: ,

Tags:

ASP.NET AJAX | accessibilità

Prossimi appuntamenti

by Andrea 30 September 2007 18:09
appointment-back Eccomi qui in un fine settimana passato a preparare slide e codice... ...in questo periodo ho veramente poco tempo libero e la causa sono diversi apputamenti (tra webcast e meeting) dove trattarò come argomenti principali ASP.NET AJAX e ASP.NET AJAX Futures. Vi consiglio di segnarvi e di non perdervi nessuno di questi appuntamenti:
clock11 ottobre 2007 ore 11:00 Webcast:  ASP.NET 2.0 AJAX - Tips & Tricks
clock11 ottobre 2007 ore 20:45 Evento 1nn0va:  ASP.NET 2.0 e AJAX
clock16 novembre 2007 ore 20:00 Community Meeting Web Development Ways
clock22 novembre 2007 ore 14:30 Webcast:  ASP.NET AJAX - Utilizzarlo in siti pre-esistenti

Technorati tags: , , ,

Tags:

ASP.NET AJAX | XeDotNet

ASP.NET AJAX Validator update - KB934839

by Andrea 25 September 2007 20:09

Questa mi è proprio scappata... e me ne accorgo solo ora mentre stavo preparando un esempio per il webcast.

Di cosa parlo?
Ma dei validatori caricati durante un postback asincrono.

I validatori sono tra i controlli non compatibili con ASP.NET AJAX 1.0, e lo potete vedere nella lista in questa pagina al paragrafo "Controls that Are Not Compatible with UpdatePanel Controls".
Ebbene, circolava la voce che dovesse venire aggiornata tramite Windows Update la dll System.Web con la risoluzione a questo problema, in pratica registrando gli script tramite lo ScriptManager nel caso la pagina fosse in partial rendering.

Con la KB934839 questo problema viene risolto, e trovate maggiori info a questo link: KB934839 - More Information.

Ma possibile che me ne accorga solo ora?
Comunque, per chi avesse Windows Update disattivato, consiglio di installare questo hotfix per risolvere il problema.

Technorati tags: , ,

Tags:

ASP.NET AJAX

Webcast ASP.NET 2.0 AJAX - Tips & Tricks

by Andrea 20 September 2007 20:09

Vi metto a conoscenza che giovedì 11/10/2007 alle ore 11.00 terrò un webcast dal titolo ASP.NET 2.0 AJAX - Tips & Tricks.

L'abstract è il seguente:

Tips & Tricks sull'uso di ASP .NET 2.0 AJAX e AJAX Control Toolkit. Questo webcast tratterà dell'uso di ASP .NET 2.0
AJAX e AJAX Control Toolkit in casi reali e pratici, proponendo possibili soluzioni alle domande più frequenti. L'uso dello ScriptManager nelle Master Page, aggiornare contemporaneamente due UpdatePanel contenuti in due diversi UserControl, e molti altri saranno gli esempi affrontati in questo Webcast.

Sarà il mio primo webcast fingerscrossed, e spero di uscirne vincitore. smile_wink

Stò aggiornando le slide e il codice con alcuni tips che ho scoperto/letto da poco, e vi assicuro che saranno davvero interessanti, e se non ve li volete perdere, correte subito a registravi al seguente link: ASP.NET 2.0 AJAX - Tips & Tricks

Tags:

ASP.NET AJAX