Posts Tagged ‘ button

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("<script language=\"javascript\">");
sScript.Append("function GetKeyCodeIE(btn){");
sScript.Append("    if (event.keyCode == 13)");
sScript.Append("    { ");
sScript.Append("        event.returnValue=false;");
sScript.Append("        event.cancel = true;");
sScript.Append("        btn.click();");
sScript.Append("     } " );
sScript.Append(" } ");

sScript.Append(" function GetKeyCodeRest (Ereignis) { ");
sScript.Append("    if (!Ereignis) ");
sScript.Append("        Ereignis = window.event; ");
sScript.Append("    if (Ereignis.which) { ");
sScript.Append("           Tastencode = Ereignis.which; ");
sScript.Append("    } else if (Ereignis.keyCode) { ");
sScript.Append("           Tastencode = Ereignis.keyCode; ");
sScript.Append("    } ");
sScript.Append("     if (Tastencode == 13)");
sScript.Append("        document.getElementById(‘" + objDefaultButton.ClientID + "’).click();");
sScript.Append("} ");

sScript.Append(" var IE = document.all ? true : false;");
sScript.Append(" if (!IE){");
sScript.Append("   document.onkeydown = GetKeyCodeRest;");
sScript.Append("}");
sScript.Append("</script>");

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.

Hold the button

Wer im Moment nichts besseres zu tun hat (oder auch nur lange weile) sollte mal auf holdthebutton.com vorbeischauen! Sommerloch, Achtung ich komme :)

Blog-Buttons

Bei antipixel.com gibt es Photoshop Vorlagen für “Blog-Buttons” im Format 80×15 und die passende Typo zum selberbauen.

Wem das zu viel Arbeit ist, der kann ja mal bei gtmcknight.com vorbeischauen. Dort gibt es sage und schreibe 3472 80×15 Blog-Buttons für fast jede erdenkliche Thematik!

Update
Und noch was für Lau: Auf graphicpush.com gibt es einige freie, unter der Creative Commons Attribution-ShareAlike 2.5 License veröffentlichte Icon-Sets zum herunterladen.