Commandコントロール
Commandは、フォームをポストバック(PostBack)させるときに使用します。ポストバックされると、フォームから入力したデータがWebサーバに送信されてOnClick、OnItemCommandイベントで取得することができます。
OnClickイベントは、Command対応に個別に処理を行うときに使用します。OnItemCommandイベントは、イベント処理を複数のCommandで共有するときに使用します。OnItemCommandイベントを使用するときは、CommandNameプロパティにコマンド名を設定してCommandを識別します。また、CommandArgumentプロパティにパラメータを設定して渡すこともできます。
Commandは、SelectionListコントロールのように単独ではポストバックできないコントロールをポストバックさせるときにも使用します。
書式:
<mobile:Command id=”String” runat=”server”
CausesValidation=”{False|True}”
CommandArgument=”String”
CommandName=”String”
ImageUrl=”String”
OnClick=”Eventhandler”
OnItemCommand=”Eventhandler”
SoftKeyLabel=”String”
Text=”String”>
</mobile:Command>
下図のサンプルでは、Commandを使用してフォームをポストバックさせています。Commandには、OnClickイベントが登録されていますので、フォームがポストバックされるとOnClickイベントに制御が渡ります。OnClickイベントでは、frmResultフォームに定義されているLabelのTextプロパティにメッセージ「GOボタンをクリックしました!」を設定して表示します。frmResultフォームを表示するには、MobilePageクラスのActiveFormプロパティにフォームのIDを設定します。
Page_Load()イベントが登録されているときは、Page_Load、OnClickイベントの順に制御が渡ります。


図 Command1.aspx – OnClickイベントを使用するサンプル
下図のサンプルでは、複数のCommandからイベント処理を共有しています。Commandのイベントを共有するには、OnClickイベントの代わりにOnItemCommandイベントを使用します。赤色、緑色、青色、中止のCommandでは、OnItemCommandイベントを登録してイベント処理を共有しています。Commandを識別するために、赤色、緑色、青色のCommandには、CommandNameプロパティにColorを設定しています。中止のCommandのCommandNameには、Cancelを設定しています。赤色、緑色、青色のCommandには、CommandArgumentプロパティに引数としてカラー名(Red, Green, Blue)を設定して渡しています。
CommandをクリックするとフォームがポストバックされてOnItemCommandイベントに制御が渡ります。OnItemCommandイベントでは、CommandNameプロパティを参照してCommandを識別します。CommandNameにColorが格納されているときは、CommandArgumentプロパティに格納されているカラー名でメッセージを表示します。メッセージの前景色を変えるには、LabelのForeColorプロパティにカラー名を設定します。
lblMessage.ForeColor = Color.FromName(“Red”)
lblMessage.ForeColor = Color.FromName(“Green”)
lblMessage.ForeColor = Color.FromName(“Blue”)


図 Command2.aspx – CommandName、CommandArgumentを使用するサンプル