ASP.NET 1. 1 – DefaultButton definieren

In ASP.NET 2.0 gibt es die Methode HtmlForm.DefaultButton, mit der man den DefaultButton eines Formularelements festlegen kann. Sehr nützlich wenn man ein Formular mit mehreren Buttons erstellt hat und der Benutzer durch drücken der ENTER-Taste auf einem Input-Feld eine Aktion auslösen soll wie z.B. verschiedene Suchoptionen. Leider bietet ASP.NET 1.1 keine Funktion dieser Art.

Bei kamp-hansen.dk bin ich auf einen Lösungsansatz gestoßen, der zwar leider in VB und nur für den IE gebaut wurde, aber im Grunde ist der Lösungsweg nicht schlecht. Der „C#-Way“ sollte dann in etwas so aussehen:


public void DefaultButton(System.Web.UI.Page Page,
System.Web.UI.WebControls.TextBox objTextControl,
System.Web.UI.WebControls.Button objDefaultButton){

System.Text.StringBuilder sScript = new System.Text.StringBuilder();

sScript.Append("");

objTextControl.Attributes.Add("onkeydown",
"GetKeyCodeIE( document.all." + objDefaultButton.ClientID + ")");
Page.RegisterStartupScript("ForceDefaultToScript", sScript.ToString());
}

Der Aufruf erfolgt dann mittels

DefaultButton(Page,txtSearch,btnSearch)

Ok, ganz glücklich bin ich mit dieser Lösung auch nicht – einige werden mir da sicherlich zustimmen – , aber „auf die Schnelle“ ein durchaus akzeptabler Ansatz.