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:
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.
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).
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>