Announcement

Collapse
No announcement yet.

Return im Textfeld löst Click-Ereignis

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

  • Return im Textfeld löst Click-Ereignis

    Hallo,

    ich habe ein Problem bei der Programmierung in ASP.Net mit C# (Visual Studio 2005).
    Ich habe einen Button und ein Textfeld(TextBox) , suche nach einem Wort im Textfeld, wenn ich Return-Taste clicke, wird mein Programm unter die Funktion TextBox_TextChanged(...) ausgeführt, dann springt automatisch unter die Button_Click(...)-Funktion

    Die beiden Prozeduren werden ausgeführt( TextBox_TextChanged(..) und Button_click(..) )

    Ich weiss nicht, wie ich das Problem beseitige?

    Viele Grüße und ein schönes Wochenende.

    mmx2009

  • #2
    Hallo,
    mir ist nicht ganz klar wann und warum Du bei der Textsuche Enter drückst, aber dadurch wir der Default Button der Seite aktiviert (der erste gefundene Button auf der Seite) und damit ein Submit der Seite ausgeführt.

    Seit ASP.NET 2.0 gibt es die DefaultButton Property für das Button WebControl. Dazu findest Du Infos im Web oder der MSDN, die dir sicher weiterhelfen.

    Gruß, Bruno

    Comment


    • #3
      Hallo Bruno,

      Danke für die Antwort.

      Wenn ich die Return-Taste nicht betätige, wird kein Ereignis ausgelöst. Das ist mein Problem, obwohl die Funktion TextBox_Textchanged(..) ist schon vorhanden. In Winforms funktionert sehr gut.

      Ich weiss nicht, soll ich irgendwelche Einstellung in TextBox ändern damit ohne Return-Taste funktioniert?

      Viele Grüße
      mmx2009

      Comment


      • #4
        Hallo nochmal,

        jetzt verstehe ich den Problem.

        Der Commandhandler für das Text_Changed Event wird normalerweise erst ausgeführt wenn die Form mit dem Button oder Enter submitted wird.

        Wenn Du aber bei der TextBox die AutoPostBack-Property auf True setzt wird das Event sofort bei Verlassen des Textfeldes (z.B. mit TAB) ausgelöst und behandelt.

        Um direkt bei der Eingabe eines neuen Zeichens zu reagieren könntest Du höchstens ein HTML Control (Input, type=text) verwenden und das Event mit JavaScript behandeln.

        Gruß, Bruno

        Comment


        • #5
          Hallo Bruno,

          Vielen Dank nochmal für die schnelle Antwort.

          Ich habe die PostBack-Eigenschaft auf true gesetzt, wie Du beschrieben hast, funktioniert.

          Ich möchte aber, wenn ich noch nicht das Textfeld verlasse, das Ereignis ausgelöst werde, ohne Hilfe von irgendwelche Taste, so heißt von Definition "Text-Changed-Ereignis",genauso funktionert bei mir in Winforms aber in Asp nicht.

          Viele Grüße

          mmx2009

          Comment


          • #6
            Hallo,

            eine Windowsanwendung auf dem Desktop kann auf alle Benutzereingaben direkt reagieren, da Windows ständig lauscht.
            Events für Server-Controls in ASP.NET werden wie der Name schon sagt auf dem Server behandelt, d.h. die Seite mit den Post-Back Daten und ViewState wird beim Request zum Server geschickt und ausgewertet. Hat sich der Inhalt des Textfeldes geändert und das TextChanged Event ist registriert, wird der Commandhandler getriggert.

            Ob sich der Text wirklich geändert hat ist erst klar wenn das Feld verlassen wird. Es könnte ja sein der Benutzer fügt etwas ein und löscht es gleich wieder und verlässt das Feld wie es vorher war.
            Daher ist dieses Event für deinen Fall nicht das richtige. Wenn Du jede Eingabe sofort behandeln willst hast Du nur eine Möglichkeit, client-seitig mit JavaScript und dem onkeypress, onkeyup oder onkeydown Event.

            HTML Code:
            <input type="text" id="txtToCheck" onkeypress="BehandleEvent()" />
            Das Textfeld ist ein HTML Control und das onkeypress (oder onkeydown / onkeyup) Event wird in einer JavaScript Funktion beim Client behandelt.

            Gruß, Bruno

            Comment


            • #7
              Hallo Bruno,

              Danke für Deine ausführliche Antwort.

              Es ist mir Deine Lösung mit JavaSkript und onekeypress unklar, ich wollte ohne Eingabe von irgendwelche Taste die Suchfunktion programmieren, aber versuche ich Deine Lösung zu realisieren.

              Ich programmiere momentan die ASP-Seiten in C#.

              Besten Dank

              mmx2009

              Comment

              Working...
              X