ObjectList.ItemCommand Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit lorsque l'utilisateur sélectionne une commande qui est associée à un élément ObjectList. Cette API est obsolète. Pour plus d’informations sur le développement d’applications mobiles ASP.NET, consultez Mobile Apps & Sites avec ASP.NET.
public:
event System::Web::UI::MobileControls::ObjectListCommandEventHandler ^ ItemCommand;
public event System.Web.UI.MobileControls.ObjectListCommandEventHandler ItemCommand;
member this.ItemCommand : System.Web.UI.MobileControls.ObjectListCommandEventHandler
Public Custom Event ItemCommand As ObjectListCommandEventHandler
Type d'événement
Exemples
L'exemple de code suivant montre comment intercepter l'événement ItemCommand. La CommandName propriété spécifie l’action à effectuer.
Notes
L’exemple de code suivant utilise le modèle de code à fichier unique et peut ne pas fonctionner correctement s’il est copié directement dans un fichier code-behind. Cet exemple de code doit être copié dans un fichier texte vide qui a une extension .aspx. Pour plus d’informations, consultez ASP.NET modèle de code de page Web Forms.
<%@ Page Language="C#"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<script runat="server">
//System.Web.UI.MobileControls.ObjectListItem item;
//System.Web.UI.MobileControls.ObjectListItemCollection itemColl;
// Get the persisted array through postbacks.
ArrayList arr = new ArrayList();
public void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
// Create and fill the array
arr.Add(new Task("Tomorrow's work", "Yes", 1));
arr.Add(new Task("Today's work", "Yes", 1));
arr.Add(new Task("Yesterday's work", "No", 1));
// Persist the array in the Session object
Session["MyArrayList"] = arr;
// Associate and bind array to the
// ObjectList for each postback.
ObjectList1.DataSource = arr;
ObjectList1.LabelField = "TaskName";
ObjectList1.DataBind();
}
}
private void ItemCommand_Click(Object sender,
ObjectListCommandEventArgs e)
{
// Get the array from the Session object
arr = (ArrayList)Session["MyArrayList"];
// Remove selected item from the ObjectLis
int i = ObjectList1.SelectedIndex;
arr.RemoveAt(i);
Session["MyArrayList"] = arr;
// Re-Bind ObjectList to altered ArrayList.
ObjectList1.DataSource = arr;
ObjectList1.LabelField = "TaskName";
ObjectList1.DataBind();
ObjectList1.ViewMode = ObjectListViewMode.List;
}
void ItemCommands_Show(Object sender,
ObjectListShowCommandsEventArgs e)
{
// Check conditions, and add or remove
// commands in the detail view.
if (e.ListItem["Editable"].Equals("No"))
ObjectList1.Commands.RemoveAt(0);
else if (ObjectList1.Commands.Count < 1)
ObjectList1.Commands.Add(new
ObjectListCommand("Delete", "Delete"));
}
private class Task
{
private string _TaskName;
private string _Editable;
private int _Days;
public Task(string TaskName, string Editable, int Days)
{
_TaskName = TaskName;
_Editable = Editable;
_Days = Days;
}
public string TaskName
{ get { return _TaskName; } }
public string Editable
{ get { return _Editable; } }
public int Days
{ get { return _Days; } }
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<mobile:Form runat="server" id="Form1" >
<mobile:ObjectList runat="server" id="ObjectList1"
OnItemCommand="ItemCommand_Click"
OnShowItemCommands="ItemCommands_Show" >
<Command Name="Delete" Text="Delete" />
</mobile:ObjectList>
<mobile:Label runat="server" id="Label1" />
<mobile:Label runat="server" id="Label2" />
</mobile:Form>
</body>
</html>
<%@ Page Language="VB"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<script runat="server">
' System.Web.UI.MobileControls.ObjectListItem item
' System.Web.UI.MobileControls.ObjectListItemCollection itemColl
' Get the persisted array through postbacks.
Private arr As New ArrayList()
Public Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Not IsPostBack Then
' Create and fill the array
arr.Add(new Task("Tomorrow's work", "Yes", 1))
arr.Add(new Task("Today's work", "Yes", 1))
arr.Add(new Task("Yesterday's work", "No", 1))
' Persist the array in the Session object
Session("MyArrayList") = arr
' Associate and bind array to the
' ObjectList for each postback.
ObjectList1.DataSource = arr
ObjectList1.LabelField = "TaskName"
ObjectList1.DataBind()
End If
End Sub
Private Sub SelectCommand(ByVal sender As Object, _
ByVal e As ObjectListCommandEventArgs)
' Get the array from the Session object
arr = CType(Session("MyArrayList"), ArrayList)
' Remove selected item from the ObjectLis
Dim i As Integer = ObjectList1.SelectedIndex
arr.RemoveAt(i)
Session("MyArrayList") = arr
' Re-Bind ObjectList to altered ArrayList.
ObjectList1.DataSource = arr
ObjectList1.LabelField = "TaskName"
ObjectList1.DataBind()
ObjectList1.ViewMode = ObjectListViewMode.List
End Sub
Public Sub ShowTaskDetail(ByVal sender As Object, _
ByVal e As ObjectListShowCommandsEventArgs)
' Check conditions, and add or remove
' commands in the detail view.
If e.ListItem("Editable").Equals("No") Then
ObjectList1.Commands.RemoveAt(0)
ElseIf ObjectList1.Commands.Count < 1 Then
ObjectList1.Commands.Add(New ObjectListCommand("Delete", "Delete"))
End If
End Sub
Private Class Task
Private _TaskName As String
Private _Editable As String
Private _Days As Integer
Public Sub New(ByVal TaskName As String, _
ByVal Editable As String, ByVal Days As Integer)
_TaskName = TaskName
_Editable = Editable
_Days = Days
End Sub
Public ReadOnly Property TaskName() As String
Get
Return _TaskName
End Get
End Property
Public ReadOnly Property Editable() As String
Get
Return _Editable
End Get
End Property
Public ReadOnly Property Days() As Integer
Get
Return _Days
End Get
End Property
End Class
</script>
<html xmlns="http:'www.w3.org/1999/xhtml" >
<body>
<mobile:Form runat="server" id="Form1" >
<mobile:ObjectList runat="server" id="ObjectList1"
OnItemCommand="SelectCommand" OnShowItemCommands="ShowTaskDetail" >
<Command Name="Delete" Text="Delete" />
</mobile:ObjectList>
<mobile:Label runat="server" id="Label1" />
<mobile:Label runat="server" id="Label2" />
</mobile:Form>
</body>
</html>
Remarques
Lorsqu’un gestionnaire d’événements ItemCommand est défini, le ObjectList avertit le gestionnaire lorsqu’un événement d’élément est généré par le biais d’une interaction utilisateur.
Lorsque vous affichez une liste d’objets à l’aide de modèles, le ItemCommand gestionnaire d’événements est appelé via le mécanisme de bulle d’événements de ASP.NET. Le gestionnaire d’événements se fait passer un argument de type ObjectListCommandEventArgs, qui contient des informations sur l’élément source et la CommandName propriété du contrôle qui a généré l’événement. Cela vous permet de restituer un seul élément avec plusieurs interactions associées.
Sur le rendu par défaut, le contrôle affiche chacune des commandes définies pour la liste d’objets en tant que lien. Lorsque l’utilisateur clique sur un lien, le ItemCommand gestionnaire d’événements est appelé avec un argument de type ObjectListCommandEventArgs, qui contient des informations sur l’élément source. La valeur dans la CommandName propriété est le nom de la commande que l’utilisateur a appelée.