私は自分のプロジェクト(ASP.NET Webフォーム)に関するいくつかの調査を行い、OnCommandとOnClickのような2つのイベントタイプに遭遇しました。私はMSDNのページを読んだが、私はまだそれらの違いについては不明である。OnCommandとOnClick
OnCommandとOnClickの違いは何ですか?いつどのイベントを使用したいですか?
//それは発言のセクションで重要な違いを述べてMSDNドキュメント内のアプリ
私は自分のプロジェクト(ASP.NET Webフォーム)に関するいくつかの調査を行い、OnCommandとOnClickのような2つのイベントタイプに遭遇しました。私はMSDNのページを読んだが、私はまだそれらの違いについては不明である。OnCommandとOnClick
OnCommandとOnClickの違いは何ですか?いつどのイベントを使用したいですか?
//それは発言のセクションで重要な違いを述べてMSDNドキュメント内のアプリ
ドキュメントが少し不明な場合は、わかりやすいです。
OnClick
は、OnCommand
よりも低いレベルのイベントです。あなたはOnClick
を物理的なイベントのように考えることができ、OnCommand
はより論理的なイベントのように考えることができます。
コントロールがクリックされると、コントロールにクリックがあったことを通知するOnClick
イベントを受け取ります。コントロールはさまざまなことをレスポンスとして行うことができます。コントロールにコマンドが関連付けられていて、イベントのデフォルト処理が行われることが許可されている場合、システムはこれに続いてOnCommand
イベントを返します。
(私は/あなたがリサイズでデフォルトの処理の抑制をどのくらいのコントロール覚えていないが、あなたは確かに根本的なWin32プログラミング層のそれを制御することができますかわからない。)
OnCommand
イベントは、クリック以外の手段によってトリガされてもよい。たとえば、キーボードショートカットを使用してコントロールをアクティブにすることができます。その場合は、OnClick
はありません。このすべてから家に持ち帰るために
知識は次のとおりです。
オンデマンドで十分なときのOnClickを使用しないでください。
あなたはビジネスロジック操作をトリガするためOnClick
を使用するようにプログラムを記述する場合は、あなたのプログラムは、マウスを使用するユーザーが必要になります。障害のためにマウスを使用することができない多くのユーザーがいます。単純にマウスの上にキーボードを好む多くのユーザーがいて、マウスを持っていない多くのデバイスがあります。
(これらのデバイスでは、クリックはしばしば接触によってシミュレートされることがありますが、それは保証されているわけではありませんし、これらのすべての不器用なシミュレーションは最初は必要ではありませんでした。プログラマは、最初の場所に不注意だったと、彼らは代わりにOnCommand
のOnClick
上でアクションをトリガするような愚かなことをやってました。)
あなたがあなた自身のコントロールを書いた場合OnClick
を使用しても大丈夫でしょう。たとえば、独自のエディットボックスコントロールを作成していて、その正確な場所にキャレットを配置するためにコントロール内のどこかをクリックできるようにしたい場合は、それをレスポンスとして行うことは大丈夫ですOnClick
イベントがトリガーされています。しかし、このアクションがコントロールの内部使用のみであることに注意してください。コントロールの外部にあるアクションはトリガーされません。
の種類に指定するように編集。オンデマンドで
:クリック時で
The Command event is raised when the Button control is clicked. This event is commonly used when a command name, such as Sort, is associated with the Button control. This allows you to create multiple Button controls on a Web page and programmatically determine which Button control is clicked.
:
だから、The Click event is raised when the Button control is clicked. This event is commonly used when no command name is associated with the Button control (for instance, with a Submit button).
、あなただけのボタンがクリックされたときに、いくつかのコードが実行したいが、気にしない場合具体的なケースでの具体的な実行はOnClick
です。
編集:OnCommandを使用すると、複数のボタンからのイベントを処理し、渡されたコマンド名に基づいて適切なコードを実行するハンドラを1つ持つことができます。
これはストレートMSDNのページからhttps://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.oncommand.aspx
ですが、少し冗長に説明しようとする:
OnCommand
をハンドラに追加の引数を渡すために使用されます。たとえば、リストを昇順と降順にソートする2つのボタンがあるとします。代わりに、各ボタンに別々のOnClick
ハンドラを書いて、あなたは両方のボタンに単一のハンドラを定義し、あなたがどのようなコマンド引数のボタンに応じて、複数のボタンのクリックを扱うことができる単一のハンドラを持っているので、ここでCommandName
とCommandArgument
<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"/>
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;
}
}
を渡すことができます通過している。
これはどのアプリケーションですか?あなたはどのタイプのコントロールでアクションを実行していますか? –
対象とするもの:Winforms、WPF、ASP ..? __Always__あなたの質問に正しくタグを付けてください! – TaW
検索エンジンを使ってみましたか?私はすぐにこのサイトを見つけました:http://forums.codeguru.com/showthread.php?490339-onCommand-vs-onClick-for-Buttons –