Capita spesso di dover lavorare con pagine lunghe che riempiono tutto lo spazio del browser e oltre, anche con risoluzioni alte. Usando ASP.NET inoltre è frequente l'invio di richieste al server, i cosiddetti PostBack, che possono rendere meno piacevole la navigazione perchè costringono l?utente a spostare in continuazione le sbarre di scorrimento.
Questo script ci viene in aiuto: bastano poche righe di JavaScript per individuare l?elemento HTML del controllo e richiamare il metodo scrollIntoView per focalizzarlo.
La libreria dispone di metodi statici per conoscere, data la classe Page, l?oggetto che ha scatenato il postback, e spostarsi su di esso:
AutoFocuser.ScrollToPostBacker(this);
o spostarsi su un nostro controllo a scelta:
AutoFocuser.ScrollToControl(idcontrollo);
In alternativa possiamo ereditare dalla classe AutoFocusedPage, invece che dalla normale Page. Nell'allegato trovate un esempio che mostra il suo utilizzo. Questa soluzione è ancora più rapida perché ci permette di dimenticarci del problema dello scrolling delle pagine semplicemente agendo sulla proprietà AutoFocus.
Il codice JavaScript che viene inserito in ogni pagina (solo se necessario) funziona con IE 5, Opera 6 e Mozilla 1.3. Tiene inoltre in considerazione quei controlli che non mandano output HTML o che non dispongono dell'attributo ID, cercando un sottocontrollo o un controllo padre che soddisfi questo requisito.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.