C# [ASP.NET] Rätsel: Button OnClick-Methode wird fälschlicherweise aufgerufen

  • Ersteller Ersteller Green Mamba
  • Erstellt am Erstellt am
G

Green Mamba

Gast
Hallo,

ich habe ein kleines Beispiel angehangen mit einer ASP.NET Master- und Contentpage. Das ganze ist in einem Visual Studio 2010-Projekt verpackt und direkt ausführbar.
Auf der Masterpage ist oben ein Textfeld und ein Button. Der Button hat eine OnClick-Methode, die einfach eine "1" ins Textfeld einfügt.
Das funktioniert auch soweit. Wenn man allerdings auf der Website mit dem Cursor in das Textfeld geht und einfach Enter drückt, wird komischerweise auch die OnClick-Methode aufgerufen. Kann mir jemand dieses für mich unverständliche Verhalten erläutern? :)

Viele Grüße,
Mamba

PS: Stellt man den "UseSubmitBehavior"-Attribut des betroffenen Buttons auf "False", tritt dieses Verhalten nicht auf.
 

Anhänge

Ich glaube, dass der Browser automatisch den ButtonClick auslöst, da dies eben der einzige Submit-Knopf ist, der in der Nähe liegt.
Wenn man UseSubmitBehavior aktiviert, dann ändert sich das ausgegebene HTML von "<input type='submit'>" in "<input type='button'>". Daher wird der Browser wohl in letzterem Fall per Default keinen Buttonclick auslösen.
 
Bei WinForms zum Beispiel gibt es bei jeder Form eine "ApplyButton"-Eigenschaft, zu der du einen beliebigen Button hinzufügen kannst.
Drückst du nun Enter, wird dieser Button dann automatisch ausgeführt.
Normalerweise sollte das nicht passieren, wenn du ein Control ausgewählt hast, dass Enter interpretieren kann. Wäre es zum Beispiel eine Multiline-Textbox, müsste einfach ein neuer Absatz beginnen. Bei der einzeiligen Variante ist das aber logischerweise nicht möglich--->Enter wird an die ApplyButton-Funktion weitergeleitet.
 
Zurück
Oben