Partager via


ItemCommand, événement (ObjectList)

Se produit lorsque l'utilisateur sélectionne une commande associée à un élément ObjectList.

public event ObjectListCommandEventHandler ItemCommand

Notes

Si un gestionnaire d'événements ItemCommand est défini, le contrôle ObjectList avertit le gestionnaire lorsqu'un événement associé à un élément est généré par l'intervention de l'utilisateur.

Lorsque vous affichez une liste d'objets à l'aide de modèles, le gestionnaire d'événements ItemCommand est appelé via le mécanisme de propagation d'événements de ASP.NET. Un argument de type ObjectListCommandEventArgs est passé au gestionnaire d'événements. Cet argument contient des informations sur l'élément source et la propriété CommandName du contrôle ayant généré l'événement. Vous pouvez ainsi afficher un élément unique avec plusieurs interactions associées.

Lors du rendu par défaut, le contrôle affiche chacune des commandes définies pour la liste d'objets sous forme de lien. Lorsque l'utilisateur clique sur un lien, le gestionnaire d'événements ItemCommand est appelé avec un argument de type ObjectListCommandEventArgs, qui contient des informations sur l'élément source. La valeur de la propriété CommandName représente le nom de la commande appelée par l'utilisateur.

Exemple

L'exemple suivant montre comment utiliser l'événement ItemCommand. La propriété CommandName spécifie l'action à effectuer.

<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>

Voir aussi

Command, classe | CommandEventArgs, classe (Command) | ItemCommand, événement (List) | ListCommandEventArgs, classe | OnItemCommand, méthode | ObjectList, classe