ItemDataBind, événement (List)
Se produit lorsqu'un élément d'un contrôle List est lié à des données.
public event ListDataBindEventHandler ItemDataBind
Notes
Lorsqu'un élément d'un contrôle List est créé et qu'il est lié à des données, le gestionnaire d'événements définit les propriétés de l'élément de liste à partir d'expressions arbitraires.
Un élément d'un contrôle List est de type MobileListItem.
L'événement est déclenché lorsque chaque élément de source de données est lié. Le moment est alors approprié pour filtrer ou grouper les éléments de la collection MobileListitemCollection, en utilisant Text ou Value.
Exemple
L'exemple suivant montre comment utiliser l'événement ItemDataBind. La propriété DataValueField spécifie l'action effectuée.
<Script language="vb" runat="server">
' Persist across multiple postbacks.
Shared i, j, k As Integer
Class Task
Private _TaskName As String
Private _Status As [String]
Public Sub New(TaskName As [String], Status As [String])
_TaskName = TaskName
_Status = Status
End Sub
Public ReadOnly Property TaskName() As [String]
Get
Return _TaskName
End Get
End Property
Public ReadOnly Property Status() As [String]
Get
Return _Status
End Get
End Property
End Class
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
' Initialize static variables to zero.
i = 0
j = 0
k = 0
' Initial settings for tasks.
List1.DataValueField = "Status"
List1.DataTextField = "TaskName"
' Create an array and add the tasks to it.
Dim arr As New ArrayList()
arr.Add(New Task("Verify transactions", "Done"))
arr.Add(New Task("Check balance sheet", "Scheduled"))
arr.Add(New Task("Send report", "Pending"))
' Associate and bind the List to the array.
List1.DataSource = arr
List1.DataBind()
End If
End Sub
Sub TaskSummary(sender As [Object], e As ListDataBindEventArgs)
Select Case e.ListItem.Value
Case "Done"
i += 1
Case "Scheduled"
j += 1
Case "Pending"
k += 1
End Select
Label2.Text = "You have " + i.ToString() + " tasks done, " + j.ToString() + " tasks scheduled, and " + k.ToString() + " tasks Pending."
End Sub
Sub TaskStatus(sender As [Object], e As ListCommandEventArgs)
Label3.Text = e.ListItem.Text + " is " + e.ListItem.Value
End Sub
<mobile:Form runat=server id="frm1" >
<mobile:Label runat="server" id="Label1" ForeColor=green
Font-Italic=true />
<mobile:List runat=server id="List1" OnItemDataBind="TaskSummary"
OnItemCommand = "TaskStatus"/>
<mobile:Label runat="server" id="Label2" Font-Italic=true
ForeColor=Red />
<mobile:Label runat="server" id="Label3" Font-Italic=true
ForeColor=Red />
</mobile:Form>
[C#]
<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage"
Language="c#" Debug="true" %>
<script runat=server>
// Persist across multiple postbacks.
static int i,j,k;
class Task
{
private String _TaskName;
private String _Status;
public Task(String TaskName, String Status)
{
_TaskName = TaskName;
_Status = Status;
}
public String TaskName { get { return _TaskName; } }
public String Status { get { return _Status; } }
}
public void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
// Initialize static variables to zero.
i = j = k = 0;
// Initial settings for tasks.
List1.DataValueField="Status";
List1.DataTextField="TaskName";
// Create an array and add the tasks to it.
ArrayList arr = new ArrayList();
arr.Add (new Task ("Verify transactions", "Done"));
arr.Add (new Task ("Check balance sheet", "Scheduled"));
arr.Add (new Task ("Send report", "Pending"));
// Associate and bind the List to the array.
List1.DataSource = arr;
List1.DataBind ();
if (List1.HasItemCommandHandler)
{
Label1.Text = "List has ItemCommand event handler";
}
else
{
Label1.Text = "List does not have ItemCommand event handler";
}
}
}
void TaskSummary(Object sender, ListDataBindEventArgs e)
{
switch (e.ListItem.Value)
{
case "Done":
i++;
break;
case "Scheduled":
j++;
break;
case "Pending":
k++;
break;
Default:
break;
}
Label2.Text = "You have " + i + " tasks done, "
+ j + " tasks scheduled, and "
+ k + " tasks Pending.";
}
void TaskStatus(Object sender, ListCommandEventArgs e)
{
Label3.Text = e.ListItem.Text +" is " + e.ListItem.Value;
}
</script>
<mobile:Form runat=server id="frm1" >
<mobile:Label runat="server" id="Label1" ForeColor=green
Font-Italic=true />
<mobile:List runat=server id="List1" OnItemDataBind="TaskSummary"
OnItemCommand = "TaskStatus"/>
<mobile:Label runat="server" id="Label2" Font-Italic=true
ForeColor=Red />
<mobile:Label runat="server" id="Label3" Font-Italic=true
ForeColor=Red />
</mobile:Form>
Voir aussi
ListDataBindEventArgs, classe (SelectionList) | ObjectList, classe | ObjectListDataBindEventArgs, classe | SelectionList, classe | OnItemDataBind, méthode
S'applique à : List, classe