Evento ItemCommand (ObjectList)

Si verifica quando l'utente sceglie un comando associato a un elemento ObjectList.

public event ObjectListCommandEventHandler ItemCommand

Osservazioni

Quando viene definito un gestore eventi ItemCommand, il controllo ObjectList notifica al gestore la creazione di un evento di elemento dovuta all'interazione con l'utente.

Quando si esegue il rendering di un elenco di oggetti mediante l'utilizzo di modelli, il gestore eventi ItemCommand viene richiamato tramite il meccanismo di bubbling degli eventi di ASP.NET. Al gestore eventi viene passato un argomento di tipo ObjectListCommandEventArgs che contiene informazioni sull'elemento di origine e la proprietà CommandName del controllo che ha generato l'evento. Ciò consente di eseguire il rendering di un solo elemento con più interazioni associate.

Durante il rendering predefinito, il controllo esegue il rendering di ciascuno dei comandi definiti per l'elenco di oggetti come collegamento. Quando l'utente fa clic su un collegamento, il gestore eventi ItemCommand viene richiamato con un argomento di tipo ObjectListCommandEventArgs, che contiene informazioni sull'elemento di origine. Il valore della proprietà CommandName è rappresentato dal nome del comando richiamato dall'utente.

Esempio

Nell'esempio seguente viene mostrato come rilevare l'evento ItemCommand. La proprietà CommandName specifica quale azione eseguire.

<Script language="vb" runat="server">

Dim Command1 As System.Web.UI.MobileControls.ObjectListCommand
Dim Command2 As System.Web.UI.MobileControls.ObjectListCommand

Class Book
   Private _BookName, _Author, _InStock As String
   
   
   Public Sub New(BookName As String, Author As String, InStock As String)
      _BookName = BookName
      _Author = Author
      _InStock = InStock
   End Sub 'New
   
   
   Public ReadOnly Property BookName() As String
      Get
         Return _BookName
      End Get
   End Property
   
   Public ReadOnly Property Author() As String
      Get
         Return _Author
      End Get
   End Property
   
   Public ReadOnly Property InStock() As String
      Get
         Return _InStock
      End Get
   End Property
End Class


Sub SelectCommand(sender As Object, e As ObjectListShowCommandsEventArgs)
   If CType(e.ListItem.DataItem, Book).InStock = "Yes" Then
      ObjectList1.Commands.Add(Command1)
   Else
      ObjectList1.Commands.Add(Command2)
   End If
End Sub


Sub AskForBook(sender As Object, e As ObjectListCommandEventArgs)
      
   ' Selected ObjectListCommand from ObjectListCommandCollection. 
   ' You can reference it and perform an action on it depending
   ' on the value of the CommandName property.
   If e.CommandName = "CheckOut" Then
      ActiveForm = Form2
   Else 
      If e.CommandName = "Reserve" Then
         ActiveForm = Form3
      End If
   End If

End Sub

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
   ' Create and fill an array.
   Dim arr As New ArrayList()
   arr.Add(New Book("Sushi, Anyone?", "O'Leary", "Yes"))
   arr.Add(New Book("Secrets of Silicon Valley", "Dull", "No"))
   arr.Add(New Book("Net Etiquette", "Locksley", "Yes"))
   arr.Add(New Book("The Gourmet Microwave", "Ringer", "No"))

   ' Associate and bind array to the ObjectList object.
   ObjectList1.DataSource = arr
   ObjectList1.DataBind()

   ' Override autogeneration.
   ObjectList1.LabelField = "BookName"

   Command1 = New System.Web.UI.MobileControls.ObjectListCommand("CheckOut", "CheckOut")
   Command2 = New System.Web.UI.MobileControls.ObjectListCommand("Reserve", "Reserve")
End Sub
    
    
</Script>

<mobile:Form runat="server" id="Form1" >
<mobile:ObjectList id="ObjectList1" runat="server" OnItemCommand="AskForBook" OnShowItemCommands="SelectCommand">
</mobile:ObjectList>
<mobile:Label id="Label1" runat="server"></mobile:Label>
</mobile:Form>
<mobile:Form id="Form3" runat="server">
<mobile:Label id="Label2" runat="server">Placed On Reserve!</mobile:Label>
</mobile:Form>
<mobile:Form id="Form2" runat="server">
<mobile:Label id="Label3" runat="server">Successfully Checked Out!</mobile:Label>
</mobile:Form>


[C#]

<script Language="c#" runat="server">

System.Web.UI.MobileControls.ObjectListCommand Command1;
System.Web.UI.MobileControls.ObjectListCommand Command2;

class Book
{
   private String _BookName, _Author, _InStock;
   
   public Book(String BookName, String Author, String InStock) 
   { 
      _BookName = BookName; 
      _Author = Author;
      _InStock = InStock;
   }

   public String BookName { get { return _BookName; } }
   public String Author { get { return _Author; } }
   public String InStock { get { return _InStock; } }
}

public void Page_Load(Object sender, EventArgs e)
{
   // Create and fill an array.
   ArrayList arr = new ArrayList();
   arr.Add (new Book ("Sushi, Anyone?", "O'Leary", "Yes"));
   arr.Add (new Book ("Secrets of Silicon Valley", "Dull", "No"));
   arr.Add (new Book ("Net Etiquette", "Locksley", "Yes"));
   arr.Add (new Book ("The Gourmet Microwave", "Ringer", "No"));

   // Associate and bind array to the ObjectList object.
   ObjectList1.DataSource = arr;
   ObjectList1.DataBind ();

   // Override autogeneration.
   ObjectList1.LabelField = "BookName";

   Command1 = new System.Web.UI.MobileControls.ObjectListCommand
      ("CheckOut", "CheckOut");
   Command2 = new System.Web.UI.MobileControls.ObjectListCommand
      ("Reserve", "Reserve");
}

void SelectCommand(Object sender, 
   ObjectListShowCommandsEventArgs e)
{
   if ( ((Book)e.ListItem.DataItem).InStock == "Yes" )
   {
      ObjectList1.Commands.Add(Command1);
   }
   else
   {
      ObjectList1.Commands.Add(Command2);
   }  
}

void AskForBook(Object sender, ObjectListCommandEventArgs e)
{
   // Selected ObjectListCommand from ObjectListCommandCollection. 
   // You can reference it and perform an action on it depending
   // on the value of the CommandName property.

   if (e.CommandName == "CheckOut")
   {
      ActiveForm = Form2;
   }
   else if (e.CommandName == "Reserve")
   {
      ActiveForm = Form3;
   }
}
</script>

<mobile:Form runat="server" id="Form1" >
<mobile:ObjectList id="ObjectList1" runat="server" OnItemCommand="AskForBook" OnShowItemCommands="SelectCommand">
</mobile:ObjectList>
<mobile:Label id="Label1" runat="server"></mobile:Label>
</mobile:Form>
<mobile:Form id="Form3" runat="server">
<mobile:Label id="Label2" runat="server">Placed On Reserve!</mobile:Label>
</mobile:Form>
<mobile:Form id="Form2" runat="server">
<mobile:Label id="Label3" runat="server">Successfully Checked Out!</mobile:Label>
</mobile:Form>

Vedere anche

Classe Command | Classe CommandEventArgs (Command) | Evento ItemCommand (List) | Classe ListCommandEventArgs | Metodo OnItemCommand | Classe ObjectList