Compartilhar via


Criando um objeto de uma lista de um elemento da coleção

As etapas a seguir descrevem como um celular List controle constrói uma MobileListItem instância de um elemento na coleção:

  1. As verificações de controle se o DataTextField ou DataValueField as propriedades são definidas. Se este for o caso, o controle usa esses nomes de campo para descobrir propriedades do elemento e conjunto o Text e Value propriedades das MobileListItem instância.

  2. Se nem o DataTextField nem DataValueField as propriedades são definidas, os conjuntos de controles a Text e Value propriedades das MobileListItem instância para a representação da cadeia de caracteres do elemento (usando o ToString método).

  3. Se um ItemDataBind manipulador de eventos é definido, o manipulador é chamado. Você pode usar esse manipulador para conjunto as propriedades do MobileListItem instância.

Ao fornecer renderização padrão, o controle de lista representa um MobileListItem instância pelo seu Text propriedade. Na renderização de modelo, o modelo pode processar uma propriedade desejada do MobileListItem instância ou objeto com dados vinculados associado.

Quando o ItemsAsLinks propriedade for definida, o List controle processa itens sistema autônomo hiperlinks. O valor de Text propriedade se torna o texto do link e o valor da Value propriedade torna-se a URL de destino.

Lidar com a seleção

Se a lista for complexa, sistema autônomo uma matriz de objetos, você não pode diretamente acesso sistema autônomo membros do item selecionado por meio da seleção.No entanto, se você criar seu aplicativo apropriadamente, você pode acessar o objeto associado.Se você estiver criando um agrupar de objetos para popular a lista, você pode colocar o agrupar de uma matriz global e manipular, em seguida, o valor retornado sistema autônomo um índice ao array, sistema autônomo mostrado no exemplo de código a seguir.

<%@ Page Language="VB" 
    Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile" 
    Namespace="System.Web.UI.MobileControls" 
    Assembly="System.Web.Mobile" %>

<script >
    Private customers(3) As Person

    Private Class Person
        Private _Name, _Nickname, _Initials As String

        Public Sub New(ByVal name As String, _
            ByVal nickname As String, ByVal initials As String)
            Me._Name = name
            Me._Nickname = nickname
            Me._Initials = initials
        End Sub

        Public ReadOnly Property Name() As String
            Get
                Return _Name
            End Get
        End Property
        Public ReadOnly Property Nickname() As String
            Get
                Return _Nickname
            End Get
        End Property
        Public ReadOnly Property Initials() As String
            Get
                Return _Initials
            End Get
        End Property
    End Class

    Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        ReDim customers(2)
        customers(0) = New Person("George Washington", "George", "GW")
        customers(1) = New Person("Abraham Lincoln", "Abe", "AL")
        customers(2) = New Person("Theodore Roosevelt", "Teddy", "TR")

        If (Not IsPostBack) Then
            ' Bind the array to the list.
            List1.DataSource = customers
            List1.DataTextField = "Name"
            List1.DataBind()
        End If
    End Sub

    Protected Sub List1_ItemCommand(ByVal sender As Object, _
        ByVal e As ListCommandEventArgs)

        Dim selectedPerson As Person = customers(e.ListItem.Index)
        Label1.Text = String.Format("{0} (AKA {1}), initials {2}", _
            selectedPerson.Name, selectedPerson.Nickname, _
            selectedPerson.Initials)

        ActiveForm = Form2
    End Sub

    Protected Sub Command1_Click(ByVal sender As Object, _
        ByVal e As EventArgs)

        Me.ActiveForm = Me.Form1
    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
    <mobile:form id="Form1" >
        <mobile:List ID="List1" Runat="server" OnItemCommand="List1_ItemCommand">
        </mobile:List>
    </mobile:form>
    <mobile:Form ID="Form2" Runat="server">
        <mobile:Label ID="Label1" >Label</mobile:Label>
        <mobile:Command ID="Command1" Runat="server" OnClick="Command1_Click">Return to Form1</mobile:Command>
    </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 >
    private Person[] customers = new Person[3];

    private class Person
    {
        private String _Name, _Nickname, _Initials;

        public Person(String name, String nickname, String initials)
        {
            this._Name     = name;
            this._Nickname = nickname;
            this._Initials = initials;
        }

        public String Name     { get { return _Name;     } }
        public String Nickname { get { return _Nickname; } }
        public String Initials { get { return _Initials; } }
    }

    private void Page_Load(object sender, System.EventArgs e)
    {
        customers[0] = new Person("George Washington", "George", "GW");
        customers[1] = new Person("Abraham Lincoln", "Abe", "AL");
        customers[2] = new Person("Theodore Roosevelt", "Teddy", "TR");

        if(!IsPostBack)
        {
            // Bind the array to the list.
            List1.DataSource    = customers;
            List1.DataTextField = "Name";
            List1.DataBind();
        }
    }

    private void List1_ItemCommand(object sender, 
        ListCommandEventArgs e)
    {
        Person selectedPerson = customers[e.ListItem.Index];
        Label1.Text = String.Format("{0} (AKA {1}), initials {2}", 
            selectedPerson.Name, selectedPerson.Nickname,
            selectedPerson.Initials);

        ActiveForm = Form2;
    }

    protected void Command1_Click(object sender, EventArgs e)
    {
        this.ActiveForm = this.Form1;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
    <mobile:form id="Form1" >
        <mobile:List ID="List1" Runat="server" OnItemCommand="List1_ItemCommand">
        </mobile:List>
    </mobile:form>
    <mobile:Form ID="Form2" Runat="server">
        <mobile:Label ID="Label1" >Label</mobile:Label>
        <mobile:Command ID="Command1" Runat="server" OnClick="Command1_Click">Return to Form1</mobile:Command>
    </mobile:Form>
</body>
</html>

Consulte também

Conceitos

Acessar dados usando controles de lista