Le mie foto
Nome:
Località: Italia, Bologna, Italy

28 giugno 2005

Come far tornare il focus su un controllo dopo un postback

Mi spiego meglio...

Intendo dire come far tornare l'utente sul web control dove era prima di fare postback

Basta far derivare la Classe della webform invece che da "System.Web.UI.Page" da "WebControls.Page"

ES:
Invece che:
public class WebForm1 : System.Web.UI.Page
{
//-----
}

public class WebForm1 : WebControls.Page
{
//-----
}

Come Funziona?

WebControls.Page eredita System.Web.UI.Page e fà l'override dei due metodi "OnInit()" e "OnPreRender() ".
Quando la pagina è inizializzata, vengono cercati ricorsivamente tutti i controlli di un certo tipo (quelli di input per esempio) e se ce ne sono viene aggiunto l'event handler dell' autopostback in modo che se c'è un postback sia settato il focus sul controllo su cui il client ha il focus in quel momento e mandato con l'event sender.

Durante il prerender, se un controllo è stato settato per avere il focus allora viene scritto un javascript che automaticamente da il focus al controllo in questione
Volendo è anche possibile settare quale controllo debba avere di default il focus.

Su IE 6.0 funziona,sugli altri browser non sò...però penso di si in quanto si tratta di javascript.[Dvlp]

4 Comments:

At 15 novembre, 2006 15:55, Anonymous Anonimo said...

...si vede che non l'hai mai provato...la classe WebControls.Page manco esiste....

 
At 15 novembre, 2006 17:00, Blogger Giammin said...

Certo che l'ho provato!

solo mi son dimenticato il link a page.cs

comunque questo valeva per asp.net1

per asp.net2.0 lo hanno integrato in System.Web.Ui.Page

 
At 16 novembre, 2006 10:35, Anonymous Anonimo said...

...bhè adesso va molto meglio...ma la fonte sarebbe questa?:
http://www.codeproject.com/aspnet/autopostbackfocus.asp

 
At 16 novembre, 2006 10:50, Blogger Giammin said...

yes!

 

Posta un commento

<< Home

Google