Condividi tramite


Classe ObjectListField

Rappresenta un campo di un controllo mobile ASP.NET ObjectList.

public sealed class System.Web.UI.MobileControls.ObjectListField : 
   System.Object, System.Web.UI.IStateManager

Osservazioni

Un campo è di tipo ObjectListField. Se si desidera visualizzare più campi, è possibile specificare più campi per ciascun elemento di un elenco di oggetti. Per creare un campo all'interno della dichiarazione di un controllo ObjectList, dichiarare un tipo ObjectListField come elemento <Field>. Ogni campo è associato a un nome di proprietà. Quando un elemento dell'elenco è associato a un oggetto di dati, ogni campo è a propria volta associato alla proprietà corrispondente dell'oggetto.

Nel controllo ObjectList sono disponibili tre modalità di definizione di un campo:

  • In modo dichiarativo, tramite l'utilizzo degli elementi figlio**<Field>** all'interno dell'elenco di oggetti
  • A livello di codice, tramite la creazione di oggetti ObjectListField da aggiungere all'insieme dei membri Fields del controllo
  • Automaticamente, tramite l'impostazione della proprietà AutoGenerateFields su True

Esempio

Nell'esempio di codice descritto di seguito viene aggiunto a livello di codice un elemento all'insieme ObjectListFieldCollection di un elenco di oggetti durante il caricamento iniziale di una pagina. In questo modo, è possibile controllare in modo esplicito l'aggiunta di campi a un elenco di oggetti.

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" 
   Language="c#" Debug="true" %>

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

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)
{
   if (!IsPostBack)
   {
      // Create and fill 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 the array with an object list.
      ObjectList1.DataSource = arr;

      // Use the Title attribute to specify the field to be used 
      // as a title.
      ObjectList1.LabelField = "BookName";
      ObjectList1.AutoGenerateFields=false ;

      // Add an ObjectListField object
      // to the ObjectListFieldCollection object.
      // collection of ObjectList1.
      ObjectListField ListField1 = new ObjectListField();
      ListField1.DataField = "BookName";
      ListField1.Title = "BookName";
      ObjectList1.Fields.Add(ListField1);

      ListField1 = new ObjectListField();
      ListField1.DataField = "Author";
      ListField1.Title = "Author";
      ObjectList1.Fields.Add(ListField1);

      ListField1 = new ObjectListField();
      ListField1.DataField = "InStock";
      ListField1.Title = "InStock";
      ObjectList1.Fields.Add(ListField1);

      // Bind to the ObjectList object.
      ObjectList1.DataBind();

      // Store the data source in a session variable so that
      // the data source can persist across multiple postbacks.
      Session["MyArray"] = arr;
   }
}

void CommandClick(Object sender, ObjectListCommandEventArgs e)
{
   ObjectList1.Fields.RemoveAt(1);

   // Associate the array to the ObjectList object.
   ObjectList1.DataSource = (ArrayList) Session["MyArray"];

   // Must bind data again.
   ObjectList1.DataBind();
}
</script>

<mobile:Form runat="server" id="Form1" >
   <mobile:ObjectList runat="server" id="ObjectList1" 
      OnItemCommand="CommandClick" >
      <command Name="RemoveField" Text="Remove Second Field" />
   </mobile:ObjectList>
   <mobile:Label runat="server" id="Label1" />
   <mobile:Label runat="server" id="Label2" />
</mobile:Form>

Requisiti

Spazio dei nomi: System.Web.UI.MobileControls

Assembly: System.Web.Mobile

Vedere anche

Classe ObjectListFieldCollection