Button.OnCommand(CommandEventArgs) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
protected:
virtual void OnCommand(System::Web::UI::WebControls::CommandEventArgs ^ e);
protected virtual void OnCommand (System.Web.UI.WebControls.CommandEventArgs e);
abstract member OnCommand : System.Web.UI.WebControls.CommandEventArgs -> unit
override this.OnCommand : System.Web.UI.WebControls.CommandEventArgs -> unit
Protected Overridable Sub OnCommand (e As CommandEventArgs)
Parametry
Data události
Příklady
Následující příklad kódu ukazuje, jak určit a kód obslužné rutiny události pro Command událost seřadit seznam při Button kliknutí na ovládací prvek. Tento příklad určuje obslužnou rutinu události deklarativně pomocí OnClick vlastnosti Button ovládacího prvku .
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Button CommandName Example</title>
<script runat="server">
void CommandBtn_Click(Object sender, CommandEventArgs e)
{
switch(e.CommandName)
{
case "Sort":
// Call the method to sort the list.
Sort_List((String)e.CommandArgument);
break;
case "Submit":
// Display a message for the Submit button being clicked.
Message.Text = "You clicked the Submit button";
// Test whether the command argument is an empty string ("").
if((String)e.CommandArgument == "")
{
// End the message.
Message.Text += ".";
}
else
{
// Display an error message for the command argument.
Message.Text += ", however the command argument is not recogized.";
}
break;
default:
// The command name is not recognized. Display an error message.
Message.Text = "Command name not recogized.";
break;
}
}
void Sort_List(string commandArgument)
{
switch(commandArgument)
{
case "Ascending":
// Insert code to sort the list in ascending order here.
Message.Text = "You clicked the Sort Ascending button.";
break;
case "Descending":
// Insert code to sort the list in descending order here.
Message.Text = "You clicked the Sort Descending button.";
break;
default:
// The command argument is not recognized. Display an error message.
Message.Text = "Command argument not recogized.";
break;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h3>Button CommandName Example</h3>
Click on one of the command buttons.
<br /><br />
<asp:Button id="Button1"
Text="Sort Ascending"
CommandName="Sort"
CommandArgument="Ascending"
OnCommand="CommandBtn_Click"
runat="server"/>
<asp:Button id="Button2"
Text="Sort Descending"
CommandName="Sort"
CommandArgument="Descending"
OnCommand="CommandBtn_Click"
runat="server"/>
<br /><br />
<asp:Button id="Button3"
Text="Submit"
CommandName="Submit"
OnCommand="CommandBtn_Click"
runat="server"/>
<asp:Button id="Button4"
Text="Unknown Command Name"
CommandName="UnknownName"
CommandArgument="UnknownArgument"
OnCommand="CommandBtn_Click"
runat="server"/>
<asp:Button id="Button5"
Text="Submit Unknown Command Argument"
CommandName="Submit"
CommandArgument="UnknownArgument"
OnCommand="CommandBtn_Click"
runat="server"/>
<br /><br />
<asp:Label id="Message" runat="server"/>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Button CommandName Example</title>
<script runat="server">
Sub CommandBtn_Click(sender As Object, e As CommandEventArgs)
Select e.CommandName
Case "Sort"
' Call the method to sort the list.
Sort_List(CType(e.CommandArgument, String))
Case "Submit"
' Display a message for the Submit button being clicked.
Message.Text = "You clicked the Submit button"
' Test whether the command argument is an empty string ("").
If CType(e.CommandArgument , String) = "" Then
' End the message.
Message.Text &= "."
Else
' Display an error message for the command argument.
Message.Text &= ", however the command argument is not recogized."
End If
Case Else
' The command name is not recognized. Display an error message.
Message.Text = "Command name not recogized."
End Select
End Sub
Sub Sort_List(commandArgument As String)
Select commandArgument
Case "Ascending"
' Insert code to sort the list in ascending order here.
Message.Text = "You clicked the Sort Ascending button."
Case "Descending"
' Insert code to sort the list in descending order here.
Message.Text = "You clicked the Sort Descending button."
Case Else
' The command argument is not recognized. Display an error message.
Message.Text = "Command argument not recogized."
End Select
End Sub
</script>
</head>
<body>
<form id="form1" runat="server">
<h3>Button CommandName Example</h3>
Click on one of the command buttons.
<br /><br />
<asp:Button id="Button1"
Text="Sort Ascending"
CommandName="Sort"
CommandArgument="Ascending"
OnCommand="CommandBtn_Click"
runat="server"/>
<asp:Button id="Button2"
Text="Sort Descending"
CommandName="Sort"
CommandArgument="Descending"
OnCommand="CommandBtn_Click"
runat="server"/>
<br /><br />
<asp:Button id="Button3"
Text="Submit"
CommandName="Submit"
OnCommand="CommandBtn_Click"
runat="server"/>
<asp:Button id="Button4"
Text="Unknown Command Name"
CommandName="UnknownName"
CommandArgument="UnknownArgument"
OnCommand="CommandBtn_Click"
runat="server"/>
<asp:Button id="Button5"
Text="Submit Unknown Command Argument"
CommandName="Submit"
CommandArgument="UnknownArgument"
OnCommand="CommandBtn_Click"
runat="server"/>
<br /><br />
<asp:Label id="Message" runat="server"/>
</form>
</body>
</html>
Následující příklad kódu ukazuje, jak určit obslužnou rutinu události a programově ji přidat do události v Page_Load
metodě .
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Button CommandName Example</title>
<script runat="server">
void CommandBtn_Click(Object sender, CommandEventArgs e)
{
switch(e.CommandName)
{
case "Sort":
// Call the method to sort the list.
Sort_List((String)e.CommandArgument);
break;
case "Submit":
// Display a message for the Submit button being clicked.
Message.Text = "You clicked the <b>Submit</b> button";
// Test whether the Command Argument is an empty string ("").
if((String)e.CommandArgument == "")
{
// End the message.
Message.Text += ".";
}
else
{
// Display an error message for the command argument.
Message.Text += ", but the command argument is not recogized.";
}
break;
default:
// The command name is not recognized. Display an error message.
Message.Text = "Command name not recogized.";
break;
}
}
void Sort_List(string commandArgument)
{
switch(commandArgument)
{
case "Ascending":
// Insert code to sort the list in ascending order here.
Message.Text = "You clicked the <b>Sort Ascending</b> button.";
break;
case "Descending":
// Insert code to sort the list in descending order here.
Message.Text = "You clicked the <b>Sort Descending</b> button.";
break;
default:
// The command argument is not recognized. Display an error message.
Message.Text = "Command argument not recogized.";
break;
}
}
void Page_Load(Object sender, EventArgs e)
{
// Manually register the event-handling method for the Command
// event of the Button controls.
Button1.Command += new CommandEventHandler(this.CommandBtn_Click);
Button2.Command += new CommandEventHandler(this.CommandBtn_Click);
Button3.Command += new CommandEventHandler(this.CommandBtn_Click);
Button4.Command += new CommandEventHandler(this.CommandBtn_Click);
Button5.Command += new CommandEventHandler(this.CommandBtn_Click);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h3>Button CommandName Example</h3>
Click one of the command buttons.
<br /><br />
<asp:Button id="Button1"
Text="Sort Ascending"
CommandName="Sort"
CommandArgument="Ascending"
runat="server"/>
<asp:Button id="Button2"
Text="Sort Descending"
CommandName="Sort"
CommandArgument="Descending"
runat="server"/>
<br /><br />
<asp:Button id="Button3"
Text="Submit"
CommandName="Submit"
runat="server"/>
<asp:Button id="Button4"
Text="Unknown Command Name"
CommandName="UnknownName"
CommandArgument="UnknownArgument"
runat="server"/>
<asp:Button id="Button5"
Text="Submit Unknown Command Argument"
CommandName="Submit"
CommandArgument="UnknownArgument"
runat="server"/>
<br /><br />
<asp:Label id="Message" runat="server"/>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Button CommandName Example</title>
<script runat="server">
Sub CommandBtn_Click(sender As Object, e As CommandEventArgs)
Select e.CommandName
Case "Sort"
' Call the method to sort the list.
Sort_List(CType(e.CommandArgument, String))
Case "Submit"
' Display a message for the Submit button being clicked.
Message.Text = "You clicked the <b>Submit</b> button"
' Test whether the Command Argument is an empty string ("").
If CType(e.CommandArgument , String) = "" Then
' End the message.
Message.Text &= "."
Else
' Display an error message for the command argument.
Message.Text &= ", but the command argument is not recogized."
End If
Case Else
' The command name is not recognized. Display an error message.
Message.Text = "Command name not recogized."
End Select
End Sub
Sub Sort_List(commandArgument As String)
Select commandArgument
Case "Ascending"
' Insert code to sort the list in ascending order here.
Message.Text = "You clicked the <b>Sort Ascending</b> button."
Case "Descending"
' Insert code to sort the list in descending order here.
Message.Text = "You clicked the <b>Sort Descending</b> button."
Case Else
' The command argument is not recognized. Display an error message.
Message.Text = "Command argument not recogized."
End Select
End Sub
Sub Page_Load(sender As Object, e As EventArgs)
' Manually register the event-handling method for the Command
' event of the Button controls.
AddHandler Button1.Command, AddressOf CommandBtn_Click
AddHandler Button2.Command, AddressOf CommandBtn_Click
AddHandler Button3.Command, AddressOf CommandBtn_Click
AddHandler Button4.Command, AddressOf CommandBtn_Click
AddHandler Button5.Command, AddressOf CommandBtn_Click
End Sub
</script>
</head>
<body>
<form id="form1" runat="server">
<h3>Button CommandName Example</h3>
Click one of the command buttons.
<br /><br />
<asp:Button id="Button1"
Text="Sort Ascending"
CommandName="Sort"
CommandArgument="Ascending"
runat="server"/>
<asp:Button id="Button2"
Text="Sort Descending"
CommandName="Sort"
CommandArgument="Descending"
runat="server"/>
<br /><br />
<asp:Button id="Button3"
Text="Submit"
CommandName="Submit"
runat="server"/>
<asp:Button id="Button4"
Text="Unknown Command Name"
CommandName="UnknownName"
CommandArgument="UnknownArgument"
runat="server"/>
<asp:Button id="Button5"
Text="Submit Unknown Command Argument"
CommandName="Submit"
CommandArgument="UnknownArgument"
runat="server"/>
<br /><br />
<asp:Label id="Message" runat="server"/>
</form>
</body>
</html>
Poznámky
Událost Command je vyvolána při kliknutí na Button ovládací prvek. Tato událost se běžně používá, když je k Button ovládacímu prvku přidružený název příkazu, například Sort
. To umožňuje vytvořit více Button ovládacích prvků na webové stránce a programově určit, na který Button ovládací prvek se kliká.
Poznámka
Událost Command je vyvolána prostřednictvím hierarchie ovládacích BubbleEvent
prvků ve formě .
Vyvolání události spustí obslužnou rutinu události prostřednictvím delegáta. Další informace najdete v tématu Zpracování a vyvolávání událostí.
Metoda OnCommand také umožňuje odvozeným třídám zpracovat událost bez připojení delegáta. Toto je upřednostňovaná technika pro zpracování události v odvozené třídě.
Poznámky pro dědice
Při přepsání OnCommand(CommandEventArgs) v odvozené třídě nezapomeňte volat metodu základní třídy OnCommand(CommandEventArgs) , aby registrovaní delegáti obdrželi událost.