myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin
» Accessoires

Ressourcen
» .NET-Glossar
» guide to C#
» openbook: Visual C#
» openbook: OO
» .NET BlogBook
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Bankverbindung
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Web-Technologien » TextBox focus setzen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

TextBox focus setzen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
solle
myCSharp.de-Mitglied

Dabei seit: 12.05.2005
Beiträge: 4


solle ist offline

TextBox focus setzen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

kann mir jemand sagen wie man einer TextBox sagen kann das sie beim aufrufen der
Webseite focusiert sein soll, d.h. der Curser soll darin aktiv sein und man kann sofort
lostippen?

Danke für eure Hilfe.
12.05.2005 11:59 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Online Online ist männlich
myCSharp.de-Mitglied

Dabei seit: 13.02.2005
Beiträge: 98
Entwicklungsumgebung: MSV-Studio 2003
Herkunft: Flensburg


Online ist offline Füge Online Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

hier mal eine Funktion, hoffe du kannst sie nachvollziehen. Übrigens ist das ASP was du hier fragst

C#-Code:
/// <summary>
        /// Set the InitialFocus to the given control. Only works when JavaScript is supported.
        /// </summary>
        /// <param name="control">Control to set the InitialFocus on.</param>
        public static void SetInitialFocus(Control control)
        {
            if (control.Page == null)
            {
                throw new ArgumentException(
                    "The Control must be added to a Page before you can set the IntialFocus to it.");
            }
            if (control.Page.Request.Browser.JavaScript == true)
            {
                // Create JavaScript
                StringBuilder s = new StringBuilder();
                s.Append("\n<SCRIPT LANGUAGE='JavaScript'>\n");
                s.Append("<!--\n");
                s.Append("function SetInitialFocus()\n");
                s.Append("{\n");
                s.Append("   document.");

                // Find the Form
                Control p = control.Parent;
                while (!(p is System.Web.UI.HtmlControls.HtmlForm))
                    p = p.Parent;
                s.Append(p.ClientID);

                s.Append("['");
                s.Append(control.UniqueID);

                // Set Focus on the selected item of a RadioButtonList
                RadioButtonList rbl = control as RadioButtonList;
                if (rbl != null)
                {
                    string suffix = "_0";
                    int t = 0;
                    foreach (ListItem li in rbl.Items)
                    {
                        if (li.Selected)
                        {
                            suffix = "_" + t.ToString();
                            break;
                        }
                        t++;
                    }
                    s.Append(suffix);
                }

                // Set Focus on the first item of a CheckBoxList
                if (control is CheckBoxList)
                {
                    s.Append("_0");
                }

                s.Append("'].focus();\n");
                s.Append("}\n");

                if (control.Page.SmartNavigation)
                    s.Append("window.setTimeout(SetInitialFocus, 500);\n");
                else
                    s.Append("window.onload = SetInitialFocus;\n");

                s.Append("// -->\n");
                s.Append("</SCRIPT>");

                // Register Client Script
                control.Page.RegisterClientScriptBlock("InitialFocus", s.ToString());
            }
        }
12.05.2005 13:03 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Noodles
myCSharp.de-Poweruser/ Experte

Dabei seit: 08.02.2004
Beiträge: 4.646
Herkunft: Leipzig


Noodles ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

So funktioniert es in ASP.NET 2.0.

C#-Code:
protected void Page_Load(object sender, EventArgs e)
{
    textBox.Focus();
}
12.05.2005 13:16 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Online Online ist männlich
myCSharp.de-Mitglied

Dabei seit: 13.02.2005
Beiträge: 98
Entwicklungsumgebung: MSV-Studio 2003
Herkunft: Flensburg


Online ist offline Füge Online Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat:
Original von Noodles
So funktioniert es in ASP.NET 2.0.

C#-Code:
protected void Page_Load(object sender, EventArgs e)
{
    textBox.Focus();
}

das ist natürlich viel schneller geschrieben großes Grinsen leider ist VS2005 noch nix für ne Firma enttäuscht
12.05.2005 13:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
solle
myCSharp.de-Mitglied

Dabei seit: 12.05.2005
Beiträge: 4

Themenstarter Thema begonnen von solle

solle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich habe noch das .NET 1.1 Framework, da gibt es das

C#-Code:
textBox.Focus();

noch nicht. Die 1. Lösung oben steig ich nicht durch, ist mir zu kompliziert... smile
12.05.2005 13:50 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Online Online ist männlich
myCSharp.de-Mitglied

Dabei seit: 13.02.2005
Beiträge: 98
Entwicklungsumgebung: MSV-Studio 2003
Herkunft: Flensburg


Online ist offline Füge Online Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat:
Original von solle
Ich habe noch das .NET 1.1 Framework, da gibt es das

C#-Code:
textBox.Focus();

noch nicht. Die 1. Lösung oben steig ich nicht durch, ist mir zu kompliziert... smile

ist eigentlich ganz einfach, du kopierst die Funktion in dein Project und in der Pageload rufst du dann die Funktion auf und übergibst einfach die TextBox,die den Focus haben soll...voila

du kannst auch andere Controls übergeben, muss nicht unbeding ne TextBox sein
12.05.2005 13:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Noodles
myCSharp.de-Poweruser/ Experte

Dabei seit: 08.02.2004
Beiträge: 4.646
Herkunft: Leipzig


Noodles ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

C#-Code:
private void Page_Load(object sender, System.EventArgs e)
{
    string myCallback =
        "<script language=\"javascript\">\\n" +
        "function Show()\\n" +
        "{{\\n" +
        "   var textbox = document.getElementById ('{0}');\\n" +
        "   if( textbox != null )\\n" +
        "       textbox.focus();\\n" +
        "}}\\n" +
        "</script>";
        this.RegisterClientScriptBlock( "key", string.Format( myCallback, myTextBox.ClientID ));
    HtmlGenericControl myBody = (HtmlGenericControl)this.FindControl( "BODY" );
    myBody.Attributes.Add( "onload", "Show()");
}

Im HTML muss folgendes im Body Tag stehen.

Code:
1:
<body id="BODY" runat=server>
12.05.2005 14:13 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
solle
myCSharp.de-Mitglied

Dabei seit: 12.05.2005
Beiträge: 4

Themenstarter Thema begonnen von solle

solle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Noodles,
ich habe gerade deine Lösung ausprobiert habe einen Fehler gefunden, man muss die
"n" weglassen (war mal \n oder ?). Mit dem Code gehts jetzt:

C#-Code:
private void Page_Load(object sender, System.EventArgs e)
        {
            string myCallback =
                "<script language=\"javascript\">" +
                "function Show()" +
                "{{" +
                "   var textbox = document.getElementById ('{0}');" +
                "   if( textbox != null )" +
                "       textbox.focus();" +
                "}}" +
                "</script>";
            this.RegisterClientScriptBlock( "key", string.Format( myCallback, TextBox1.ClientID ));
            HtmlGenericControl myBody = (HtmlGenericControl)this.FindControl( "BODY" );
            myBody.Attributes.Add( "onload", "Show()");
        }

DANKE !!! Augenzwinkern
12.05.2005 15:44 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Noodles
myCSharp.de-Poweruser/ Experte

Dabei seit: 08.02.2004
Beiträge: 4.646
Herkunft: Leipzig


Noodles ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ja das war mal "\n", hatte nicht nochmal hingeschaut nach dem posten.
Wenn "\n" da steht funktioniert es natürlich auch.

Ich habe es mal berichtigt.
12.05.2005 15:54 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 9 Jahre.
Der letzte Beitrag ist älter als 9 Jahre.
Antwort erstellen


© Copyright 2003-2014 myCSharp.de-Team. Alle Rechte vorbehalten. 23.09.2014 12:18