8.2 Button
 
Klasse
|
System.Web.UI.WebControls.Button
|
Deklaration
|
<asp:Button id="MyButton"
Text=" OK "
CausesValidation="true | false"
OnClick="OnClick-Methode"
OnCommand="OnCommand-Methode"
CommandName="command"
CommandArgument="commandargument"
runat="server"/>
|
Erzeugter HTML-Code
|
<input type="submit" ... />
oder
<input type="button" ... />
|
Kurzcharakteristik
|
Das Button-Webserversteuerelement erstellt eine Schaltfläche mit der Beschriftung, die im Attribut Text festgelegt wird. Wenn die Schaltfläche ein Formular abbrechen soll, kann mit CausesValidation = "false" die Validierung abgeschaltet werden.
|
In der Minimalversion hat das Button-Webserversteuerelement diese Form:
<asp:Button id="btnOK"
Text=" OK "
runat="server"/>
Wenn Sie keine Ereignisprozedur mit OnClick und kein Kommando mit CommandName definieren, erzeugt das Button-Steuerelement im HTML-Code den gewöhnlichen Submit-Button, der beim Anklicken die jeweilige Seite zum Server sendet:
<input type="submit" name="btnOK" value=" OK " id="btnOK" />
8.2.1 OnClick
 
Wenn Sie mit OnClick eine Ereignisprozedur definieren, wird diese nach dem Anklicken der Schaltfläche ausgelöst. webserver_button01.aspx zeigt ein einfaches Beispiel. Wenn der Anwender auf den Button klickt, wird zum Text des Label-Felds jeweils der Text Angeklickt! hinzugefügt. Abbildung 8.2 zeigt die Darstellung im Browser.
<!-- webserver_button01.aspx -->
<%@ Page Language="VB" Debug="True" Strict="True" %>
<script runat="server">
Sub btnOK_Click (Sender As Object, E As EventArgs)
ausgabe.Text &= "Angeklickt! "
End Sub
</script>
<html><head>
<title>Webserversteuerelemente: Button</title>
</head><body>
<form runat="server" id ="myForm">
<asp:Label
id="ausgabe"
Text ="Bitte klicken! "
runat="server" />
<br><br>
<asp:Button id="btnOK"
Text=" OK "
runat="server"
OnClick="btnOK_Click" />
</form >
</body></html>
 Hier klicken, um das Bild zu Vergrößern
Abbildung 8.2 Dem Webserversteuerelement Button kann eine Ereignisprozedur zugewiesen werden.
Mit dem Attribut OnClick="btnOK_Click" verweist das Button-Element auf die Ereignisprozedur. Als Ereignisprozedur benötigt btnOK_Click auf jeden Fall die Signatur btnOK_Click (Sender As Object, E As EventArgs). Oft wird man die beiden Parameter, die hier geliefert werden, gar nicht benötigen. In manchen Situationen ist es aber hilfreich zu wissen, welches Objekt diese Ereignisprozedur ausgelöst hat (Sender) und welche weiteren Argumente unter Umständen verfügbar sind (E). Mit der Zeile ausgabe.Text &= "Angeklickt! " verlängert die Prozedur jeweils den Text des Labels.
8.2.2 OnCommand
 
Mit den Attributen CommandName und CommandArgument haben Sie eine Alternative zur Code-Ausführung. Diese Alternative bietet sich an, wenn mit Hilfe mehrerer Buttons ähnliche Prozeduren ausgeführt werden sollen, die sich jeweils nur geringfügig voneinander unterscheiden. Im Attribut OnCommand übergeben Sie den Namen der Ereignisprozedur. In CommandName und CommandArgument übergeben Sie Parameter.
webserver_button02.aspx enthält ein Beispiel. Drei Buttons färben den Hintergrund eines Label-Felds mit unterschiedlichen Farben.
<!-- webserver_button02.aspx -->
<script runat="server">
Sub setFarbe (Sender As Object, E As CommandEventArgs)
Select Case E.commandName
Case "rot"
lblTest.BackColor=Drawing.Color.Red
Case "gelb"
lblTest.BackColor=Drawing.Color.Yellow
Case "blau"
lblTest.BackColor=Drawing.Color.Blue
End Select
End Sub
</script>
<html><head>
<title>Webserversteuerelemente: Button</title>
</head><body>
<form runat="server" id ="myForm">
<asp:Label
id="lblTest"
Text =" Test "
runat="server" />
<br><br>
<asp:Button id="btnRot"
Text=" Rot "
runat="server"
onCommand="setFarbe"
CommandName="rot"
CommandArgument="" />
<asp:Button id="btnGelb"
Text=" Gelb "
runat="server"
onCommand="setFarbe"
CommandName="gelb"
CommandArgument="" />
<asp:Button id="btnBlau"
Text=" Blau "
runat="server"
onCommand="setFarbe"
CommandName="blau"
CommandArgument="" />
</form ></body></html>
Alle drei Buttons haben das Attribut onCommand="setFarbe". Es wird also jeweils die gleiche Prozedur ausgeführt. Die Buttons unterscheiden sich im Attribut CommandName. Hier wird etwa mit CommandName="rot" die individuelle Farbe angegeben. Mit dem Parameter CommandArgument könnten weitere Parameter übergeben werden, was hier aber nicht nötig ist.
Die Prozedur setFarbe bringt über den Parameter E das commandName-Attribut in Erfahrung und reagiert entsprechend mit einer Select-Anweisung:
Select Case E.commandName ...
|