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.
Approfondimenti
I più letti di oggi
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- Gestione degli eventi nei Web component HTML
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- Creare agenti facilmente con Azure AI Agent Service
- C# 8
- Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API