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:
...si vede che non l'hai mai provato...la classe WebControls.Page manco esiste....
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
...bhè adesso va molto meglio...ma la fonte sarebbe questa?:
http://www.codeproject.com/aspnet/autopostbackfocus.asp
yes!
Posta un commento
<< Home