Controllo Command

Il controllo Command consente di richiamare i gestori eventi ASP.NET dagli elementi di interfaccia utente, eseguendo in questo modo il postback dell'input dell'utente dagli elementi di interfaccia al server. Il controllo Command implementa l'interfaccia IPostBackDataHandler in modo da poter gestire l'evento postback creato quando si fa clic su un'immagine.

Sintassi dei controlli mobili

Le proprietà necessarie, le impostazioni predefinite e gli elementi dalle funzionalità di codice sono in grassetto.

<mobile:Command   runat="server"
   id="id"
   Font-Name="fontName"
   Font-Size="{NotSet|Normal|Small|Large}"
   Font-Bold="{NotSet|False|True}"
   Font-Italic="{NotSet|False|True}"
   ForeColor="foregroundColor"
   BackColor="backgroundColor"
   Alignment="{NotSet|Left|Center|Right}"
   BreakAfter="{True|False}"
   EnableViewState="{True|False}"
   StyleReference="styleReference"
   Text="text"
   Visible="{True|False}"
   Wrapping="{NotSet|Wrap|NoWrap}"

   CausesValidation="{NotSet|False|True}"
   CommandArgument="commandArgument"
   CommandName="commandName"
   Format="Button|Link"
   ImageUrl="imageUrl"
   OnClick="clickEventHandler"
   OnItemCommand="commandEventHandler"
   SoftkeyLabel="softkeyLabel">
innerText
</mobile:Command>

Regole di contenimento

I controlli descritti di seguito possono contenere un controllo Command.

Controllo Commenti
System.Web.UI.MobileControls.Form Può contenere un numero indefinito di controlli Command.
System.Web.UI.MobileControls.Panel Può contenere un numero indefinito di controlli Command.

Nei controlli di testo non possono essere contenuti altri controlli.

Modelli di dispositivo

Nessuno.

Comportamento specifico del dispositivo

Lo stile con cui viene rappresentato un comando differisce in base al dispositivo, ma il testo del comando verrà visualizzato su tutti i dispositivi. È possibile richiamare il controllo Command da tutti i dispositivi.

Linguaggio del dispositivo Descrizione del comportamento
HTML Il controllo Command viene rappresentato come un tag <input>, come un pulsante seguito da un tag <br/>

Se sono presenti più comandi sullo stesso form e si verifica un'operazione di inoltro, sarà il primo comando a ricevere l'evento Click. L'utilizzo di INVIO non produce alcun effetto su alcuni form HTML, tuttavia, se INVIO viene premuto con un controllo Command della pagina, il primo comando riceverà l'evento Click.

WML Un controllo Command genera WML nel formato riportato di seguito.
<anchor>TextProperty<go href="postbackinfo"/> </go></anchor>
<br/>
Nota   È necessario evitare di utilizzare caratteri speciali negli URL delle pagine ASP.NET Mobile Web Forms. I tag HREF generati per eseguire il postback di eventi di comando al server non sono convalidati in modo esplicito. Un URL in cui siano presenti spazi determina la generazione di WML impossibile da gestire per alcuni browser WML.

In alcune circostanze, ad esempio in caso di invio di un form, il controllo Command viene rappresentato in WML come un elemento <do> anziché come un punto di ancoraggio. In questi casi le proprietà FontSize, FontStyle e Wrapping vengono ignorate.

Esempio

Nell'esempio riportato di seguito vengono utilizzate due etichette, una per ogni form. La prima etichetta non viene modificata, per cui non è richiesto un valore ID. Il valore ID per la seconda etichetta è WelcomeMessage è il relativo valore di testo è impostato nel gestore eventi Button_OnClick.

<%@ Page Inherits=
   "System.Web.UI.MobileControls.MobilePage" Language="VB" %>
<%@ Register TagPrefix="mobile"
    Namespace="System.Web.UI.MobileControls"
    Assembly="System.Web.Mobile" %>

<script language="vb" runat="server">
protected Sub Button_OnClick(sender As Object, e As EventArgs) 
   WelcomeMessage.Text = "Welcome to my app, " + NameEdit.Text
   ActiveForm = SecondPanel
End Sub
</script>

<mobile:Form runat="server">
   <mobile:Label runat="server">Enter your name</mobile:Label>
   <mobile:TextBox runat="server" id="NameEdit" />
   <mobile:Command runat="server" id="Button" OnClick="Button_OnClick">
      OK
   </mobile:Command>
</mobile:Form>

<mobile:Form runat="server" id="SecondPanel">
   <mobile:Label runat="server" id="WelcomeMessage" />
</mobile:Form> 
[C#]
<%@ Page Inherits=
   "System.Web.UI.MobileControls.MobilePage" Language="C#" %>
<%@ Register TagPrefix="mobile"
    Namespace="System.Web.UI.MobileControls"
    Assembly="System.Web.Mobile" %>

<script language="c#" runat="server">
protected void Button_OnClick(Object sender, EventArgs e) 
{
   WelcomeMessage.Text = "Welcome to my app, " + NameEdit.Text;
   ActiveForm = SecondPanel;
}
</script>

<mobile:Form runat="server">
   <mobile:Label runat="server">Enter your name</mobile:Label>
   <mobile:TextBox runat="server" id="NameEdit" />
   <mobile:Command runat="server" id="Button" OnClick="Button_OnClick">
      OK
   </mobile:Command>
</mobile:Form>

<mobile:Form runat="server" id="SecondPanel">
   <mobile:Label runat="server" id="WelcomeMessage" />
</mobile:Form>

Vedere anche

Classe Command | Membri della classe Command | Riferimenti ai controlli