asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 7845
ASPCode.it - Store

  > > Tips

Assegnare il focus ad un controllo web
di Paolo Capitani

Data di pubblicazione: 02/07/2004        Voto della community: 4,06 (Votanti: 6)

Il sorgente proposto in questo script consente di assegnare il focus ad uno specifico controllo di una pagina web nel momento in cui questa viene inviata al client.
Fondamentalmente si tratta di incapsulare nella pagina ASP.net una porizione di codice Javascript (quindi lato client) che effettuerà l'operazione suddetta dopo aver previamente rilevato l'ID univoco del controllo all'interno della pagina tramite la proprietà UniqueID dell'oggetto WebControl.
Il codice è ampiamente commentato per una migliore comprensione dello stesso:

<%@ Page language="C#" %>

<script runat="server">

void Page_Load(Object sender, EventArgs e)
{
  TextBox1.Text = "Qui non voglio focus!";
  TextBox2.Text = "Focus qui!";
  SetFocus(TextBox2);
}

// funzione che assegna il focus al controllo passato come parametro
public void SetFocus(object control)
{
  // verifica che il controllo a cui si vuole dare il focus non sia nullo
  if(control==null)
    return;

  // rileva l'ID univoco del controllo
  string ctrlID = ((WebControl)control).UniqueID;

  // implementa scripting client-side per focus
  string script;
  script = "<script language=\"javascript\">";
  script += "var control = document.getElementById(\"" + ctrlID + "\");";
  script += "if(control!=null){control.focus();";
  // se è un TextBox, oltre a dare il focus, seleziona il testo
  if(control.GetType().ToString()=="System.Web.UI.WebControls.TextBox")
  {
    script += "control.select();";
  }
  script += "}<";
  script += "/script>";

  // "inietta" il codice client-side nell'output HTML della pagina
  Page.RegisterStartupScript("Focus", script);
}

</script>

<html>
<head>
  <title>Focus con ASP.NET</title>
</head>
<body>
<form runat="server">
<asp:TextBox id="TextBox1" runat="server" /><br />
<asp:TextBox id="TextBox2" runat="server" />
</form>

</body>
</html>

Per vedere lo script in azione clicca --> aspnet_focus.aspx




Utenti connessi: 7845