lunedì 14 settembre 2009

Translator English Italian

ASP.net: impostare il focus all'apertura di un ModalPopupExtender

Utilizzare Ajax in applicazioni asp net è molto semplice, ma a volte alcune cose cha potrebbero sembrare semplici da fare non lo sono affatto!
Una di queste è impostare il focus su una textbox all'interno di un ModalPopupExtender.
Infatti, settare il focus sull'elemento textbox prima di chiamare il metodo Show() del ModalPopupExtender non sortisce nessun effetto.
Per essere sicuri di avere il focus su un elemento all'interno del popup è necessario agire tramite javascript aggiungendo un handler all'evento add_shown del ModalPopupExtender.

<script type="text/javascript"> 
  function  pageLoad(){
    $find("mpeID").add_shown(onModalPopupShown);
  }

  function  onModalPopupShown(){
    setTimeout('$get("<%=txtBox.ClientID%>").focus();', 800);
  }
<script/>

Sulla pageLoad() viene aggiunto l'handler all'elemento mpeID (ModalPopupExtende),
il metodo onModalPopupShown() sarà poi eseguito quando il ModalPopupExtender verrà visualizzato. Esso non farà altro che impostare un timer, allo scadere del quale verrà settato il focus sull'elemento con ID txtBox (problemi di timing).

Nessun commento:

Posta un commento