Announcement

Collapse
No announcement yet.

ASP.NET: Fokus auf WebControl setzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ASP.NET: Fokus auf WebControl setzen

    Hallo!

    Gibt es eine Möglichkeit, beim Laden einer aspx-Seite den Tastatur-Fokus auf ein bestimmtes Control zu setzen, ohne zuvor zweimal die Tab-Taste zu betätigen (per TabIndex)?

  • #2
    Ich habe eine kleine Lösung für das Focus-Problem gebastelt.
    Dabei ist folgendes zu beachten:
    <br>1. Ich habe natürlich auf jeder WebForm eine TabOrder (TabIndex) für die Bedienelemente festgelegt.
    <br>2. Ich musste dem BODY-Tag das Event "onLoad" hinzufügen.
    <br>3. Habe ich nur für den Internet Explorer getestet. Sollte aber auf dem Netscape auch möglich sein.
    <br>
    Dies ist die JavaScript-Funktion (die innerhalb des HEAD-Tags platziert sein muss):
    <br>
    <script language="javascript"><br>
    function SetFocus()<br>
    {<br>
    var n=0<br>
    while (document.forms[0].elements[n] != null)<br>
    {<br>
    if (document.forms[0].elements[n].tabIndex == 1)<br>
    document.forms[0].elements[n].focus()<br>
    n++<br>
    }<br>
    } <br>
    </script><br>
    <br>
    Die Funktion ruft man im BODY-Tag auf:
    <body onload="SetFocus()">
    <br>
    Die Funktion SetFocus ist schnell beschrieben:
    Mit der While-Schleife werden alle Elemente der Form[0] (also der ersten Form auf der WebForm) durchsucht.<br>
    IF prüft, ob das Element[n] den TabIndex 1 hat, wenn ja, wird der Focus gesetzt.
    <br>
    Man könnte natürlich alles so erweitern das mehrere Forms auf einer Seite nach dem Element mit TabIndex 1 durchsucht werden und man kann der While-Schleife nach erfolgreichem setzen des Focusses auch noch ne Abbruchbedingung spendieren.
    <br>
    Noch Fragen

    Comment


    • #3
      Hallo,

      in ASP.NET 2.0 verbessert sich das Handling, da sowohl die Page-Klasse als auch jedes Control die neue Methode <b>SetFocus</b> unterstützt

      Comment

      Working...
      X