ObjectList, classe
Vous permet de spécifier plusieurs champs pour l'affichage, par élément dans une liste d'objets.
Espace de noms : System.Web.UI.MobileControls
Assembly : System.Web.Mobile (dans system.web.mobile.dll)
Syntaxe
'Déclaration
Public Class ObjectList
Inherits PagedControl
Implements INamingContainer, ITemplateable, IPostBackEventHandler
'Utilisation
Dim instance As ObjectList
public class ObjectList : PagedControl, INamingContainer, ITemplateable, IPostBackEventHandler
public ref class ObjectList : public PagedControl, INamingContainer, ITemplateable, IPostBackEventHandler
public class ObjectList extends PagedControl implements INamingContainer, ITemplateable,
IPostBackEventHandler
public class ObjectList extends PagedControl implements INamingContainer, ITemplateable,
IPostBackEventHandler
Notes
La majeure partie du comportement du ObjectList, y compris la prise en charge de la restitution basée sur des modèles par le biais de jeux de modèles de périphériques et de la pagination interne, est semblable au comportement du List. Pour plus d'informations, consultez la documentation Introduction au contrôle ObjectList ou Pagination.
Exemple
L'exemple de code suivant montre comment créer un tableau d'une classe définie par l'utilisateur et comment le lier à un objet ObjectList lors du chargement de la page. Il montre également comment la liste et les modes Détails présentent les commandes. Cet exemple présente également un bouton qui, au moyen de la propriété AllFields, affiche un formulaire dans lequel figure une liste de tous les champs.
Notes
L'exemple de code suivant utilise un modèle de code de fichier unique ; il est possible qu'il ne fonctionne pas correctement s'il est directement copié dans un fichier code-behind. Cet exemple de code doit être copié dans un fichier texte vide doté d'une extension .aspx. Pour plus d'informations, consultez Modèle de code des pages Web ASP.NET.
<%@ Page Language="VB"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<script runat="server">
Dim bakeryCount, dairyCount, produceCount As Integer
Private Sub Page_Load(ByVal o As Object, ByVal e As EventArgs)
If Not IsPostBack Then
' Create an array and bind it to the list
Dim arr As New ArrayList()
arr.Add(New GroceryItem _
("Bakery", "Rolls", "On Sale"))
arr.Add(New GroceryItem _
("Dairy", "Eggnog", "Half price"))
arr.Add(New GroceryItem _
("Produce", "Apples", _
"A dollar a bushel"))
arr.Add(New GroceryItem _
("Bakery", "Bread", "On Sale"))
List1.DataSource = arr
List1.DataBind()
' To show only one field on opening page,
' comment the next line
List1.TableFields = "Item;Department"
List1.LabelField = "Department"
' Display a report after items are databound
Const txt As String = "Number of items by Department<br>Produce: " + _
"{0}<br />Dairy: {1}<br />Bakery: {2}"
TextView2.Text = String.Format(txt, produceCount, dairyCount, bakeryCount)
End If
End Sub
' Command event for buttons
Private Sub List1_Click(ByVal sender As Object, _
ByVal e As ObjectListCommandEventArgs)
If e.CommandName = "Reserve" Then
ActiveForm = Form2
ElseIf e.CommandName = "Buy" Then
ActiveForm = Form3
Else
ActiveForm = Form4
End If
End Sub
' Count items in each department
Private Sub List1_ItemDataBind(ByVal sender As Object, ByVal e As ObjectListDataBindEventArgs)
Select Case CType(e.DataItem, GroceryItem).Department
Case "Bakery"
bakeryCount += 1
Case "Dairy"
dairyCount += 1
Case "Produce"
produceCount += 1
End Select
End Sub
Private Sub AllFields_Click(ByVal sender As Object, ByVal e As EventArgs)
ActiveForm = Form5
Dim spec As String = "{0}: {1}<br/>"
Dim flds As IObjectListFieldCollection = List1.AllFields
Dim i As Integer
For i = 0 To flds.Count - 1
TextView1.Text += _
String.Format(spec, (i + 1), flds(i).Title)
Next
End Sub
' Structure for ArrayList records
Private Class GroceryItem
' A private class for the Grocery List
Private _department, _item, _status As String
Public Sub New(ByVal department As String, _
ByVal item As String, ByVal status As String)
_department = department
_item = item
_status = status
End Sub
Public ReadOnly Property Department() As String
Get
Return _department
End Get
End Property
Public ReadOnly Property Item() As String
Get
Return _item
End Get
End Property
Public ReadOnly Property Status() As String
Get
Return _status
End Get
End Property
End Class
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<mobile:Form id="Form1" runat="server" BackColor="LightBlue">
<mobile:ObjectList id="List1" runat="server"
OnItemCommand="List1_Click" OnItemDataBind="List1_ItemDataBind">
<DeviceSpecific ID="DeviceSpecific1" Runat="server">
<!-- See Web.config for filters -->
<Choice Filter="isWML11" CommandStyle-Font-Bold="NotSet" />
<Choice CommandStyle-Font-Bold="true"
CommandStyle-Font-Name="Arial" />
</DeviceSpecific>
<Command Name="Reserve" Text="Reserve" />
<Command Name="Buy" Text="Buy" />
</mobile:ObjectList>
<mobile:Command ID="AllFieldsCmd" Runat="server"
OnClick="AllFields_Click">
List All Fields</mobile:Command>
<mobile:TextView ID="TextView2" Runat="server" />
</mobile:Form>
<mobile:Form id="Form2" runat="server" BackColor="LightBlue">
<mobile:Label id="ResLabel" runat="server"
text="Sale item reservation system coming soon!" />
<mobile:Link id="ResLink" NavigateURL="#Form1"
runat="server" text="Return" />
</mobile:Form>
<mobile:Form id="Form3" runat="server" BackColor="LightBlue">
<mobile:Label id="BuyLabel" runat="server"
Text="Online purchasing system coming soon!" />
<mobile:Link ID="BuyLink" NavigateURL="#Form1"
Runat="server" text="Return" />
</mobile:Form>
<mobile:Form id="Form4" Runat="server" BackColor="LightBlue">
<mobile:Label ID="DefLabel" Runat="server"
Text="Detailed item descriptions will be here soon!"/>
<mobile:Link ID="DefLink" NavigateURL="#Form1"
Runat="server" Text="Return" />
</mobile:Form>
<mobile:Form ID="Form5" Runat="server">
<mobile:Label ID="Label1" Runat="server">
List of AllFields:</mobile:Label>
<mobile:TextView ID="TextView1" Runat="server" />
<mobile:Link ID="Link1" Runat="server" NavigateUrl="#Form1"
Text="Return"></mobile:Link>
</mobile:Form>
</body>
</html>
<%@ Page Language="C#"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<script runat="server">
int bakeryCount = 0, dairyCount = 0, produceCount = 0;
public void Page_Load(Object o, EventArgs e)
{
if (!IsPostBack)
{ // Create an array and bind it to the list
ArrayList arr = new ArrayList();
arr.Add (new GroceryItem
("Bakery", "Rolls", "On Sale"));
arr.Add (new GroceryItem
("Dairy", "Eggnog", "Half price"));
arr.Add (new GroceryItem
("Produce", "Apples",
"A dollar a bushel"));
arr.Add (new GroceryItem
("Bakery", "Bread", "On Sale"));
List1.DataSource = arr;
List1.DataBind ();
// To show only one field on opening page,
// comment the next line
List1.TableFields = "Item;Department";
List1.LabelField = "Department";
// Display a report after items are databound
string txt = "Number of items by Department<br>Produce: {0}<br />" +
"Dairy: {1}<br />Bakery: {2}";
TextView2.Text = String.Format(txt, produceCount, dairyCount, bakeryCount);
}
}
// Command event for buttons
public void List1_Click(Object sender,
ObjectListCommandEventArgs e)
{
if (e.CommandName == "Reserve")
ActiveForm = Form2;
else if (e.CommandName == "Buy")
ActiveForm = Form3;
else
ActiveForm = Form4;
}
// Count items in each department
private void List1_ItemDataBind(object sender, ObjectListDataBindEventArgs e)
{
switch (((GroceryItem)e.DataItem).Department)
{
case "Bakery":
bakeryCount++;
break;
case "Dairy":
dairyCount++;
break;
case "Produce":
produceCount++;
break;
}
}
private void AllFields_Click(object sender, EventArgs e)
{
ActiveForm = Form5;
string spec = "{0}: {1}<br/>";
IObjectListFieldCollection flds = List1.AllFields;
for (int i = 0; i < flds.Count; i++)
TextView1.Text +=
String.Format(spec, (i + 1), flds[i].Title);
}
// Structure for ArrayList records
private class GroceryItem
{ // A private class for the Grocery List
private String _department, _item, _status;
public GroceryItem(string department,
string item, string status)
{
_department = department;
_item = item;
_status = status;
}
public String Department
{ get { return _department; } }
public String Item
{ get { return _item; } }
public String Status
{ get { return _status; } }
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<mobile:Form id="Form1" runat="server" BackColor="LightBlue">
<mobile:ObjectList id="List1" runat="server"
OnItemCommand="List1_Click" OnItemDataBind="List1_ItemDataBind">
<DeviceSpecific ID="DeviceSpecific1" Runat="server">
<!-- See Web.config for filters -->
<Choice Filter="isWML11" CommandStyle-Font-Bold="NotSet" />
<Choice CommandStyle-Font-Bold="true"
CommandStyle-Font-Name="Arial" />
</DeviceSpecific>
<Command Name="Reserve" Text="Reserve" />
<Command Name="Buy" Text="Buy" />
</mobile:ObjectList>
<mobile:Command ID="AllFieldsCmd" Runat="server"
OnClick="AllFields_Click">
List All Fields</mobile:Command>
<mobile:TextView ID="TextView2" Runat="server" />
</mobile:Form>
<mobile:Form id="Form2" runat="server" BackColor="LightBlue">
<mobile:Label id="ResLabel" runat="server"
text="Sale item reservation system coming soon!" />
<mobile:Link id="ResLink" NavigateURL="#Form1"
runat="server" text="Return" />
</mobile:Form>
<mobile:Form id="Form3" runat="server" BackColor="LightBlue">
<mobile:Label id="BuyLabel" runat="server"
Text="Online purchasing system coming soon!" />
<mobile:Link ID="BuyLink" NavigateURL="#Form1"
Runat="server" text="Return" />
</mobile:Form>
<mobile:Form id="Form4" Runat="server" BackColor="LightBlue">
<mobile:Label ID="DefLabel" Runat="server"
Text="Detailed item descriptions will be here soon!"/>
<mobile:Link ID="DefLink" NavigateURL="#Form1"
Runat="server" Text="Return" />
</mobile:Form>
<mobile:Form ID="Form5" Runat="server">
<mobile:Label Runat="server">
List of AllFields:</mobile:Label>
<mobile:TextView ID="TextView1" Runat="server" />
<mobile:Link Runat="server" NavigateUrl="#Form1"
Text="Return"></mobile:Link>
</mobile:Form>
</body>
</html>
Il s'agit d'un exemple de fichier Web.config avec plusieurs filtres spécifiques à des périphériques.
<configuration>
<system.web>
<compilation debug="true" />
<authentication mode="Windows" />
<customErrors mode="Off" />
<httpRuntime useFullyQualifiedRedirectUrl="true" />
<mobileControls cookielessDataDictionaryType="System.Web.Mobile.CookielessData" />
<deviceFilters>
<!-- Only a few filters are provided here -->
<filter name="isJPhone" compare="Type" argument="J-Phone" />
<filter name="isHTML32" compare="PreferredRenderingType" argument="html32" />
<filter name="isWML11" compare="PreferredRenderingType" argument="wml11" />
</deviceFilters>
</system.web>
</configuration>
Sécurité .NET Framework
- AspNetHostingPermission pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
- AspNetHostingPermission pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal
Hiérarchie d'héritage
System.Object
System.Web.UI.Control
System.Web.UI.MobileControls.MobileControl
System.Web.UI.MobileControls.PagedControl
System.Web.UI.MobileControls.ObjectList
Sécurité des threads
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Plates-formes
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
.NET Framework
Prise en charge dans : 2.0, 1.1
Voir aussi
Référence
Membres ObjectList
System.Web.UI.MobileControls, espace de noms
Autres ressources
Création de contrôles mobiles personnalisés
Introduction au contrôle ObjectList
Pagination
Accès aux données avec ASP.NET