Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

ListItemCollection (Clase)

Colección de objetos ListItem de un control de lista. Esta clase no puede heredarse.

System.Object
  System.Web.UI.WebControls.ListItemCollection

Espacio de nombres:  System.Web.UI.WebControls
Ensamblado:  System.Web (en System.Web.dll)

public sealed class ListItemCollection : IList, 
	ICollection, IEnumerable, IStateManager

El tipo ListItemCollection expone los siguientes miembros.

  NombreDescripción
Método públicoListItemCollectionInicializa una nueva instancia de la clase ListItemCollection.
Arriba

  NombreDescripción
Propiedad públicaCapacityObtiene o establece el número máximo de elementos que puede almacenar el objeto ListItemCollection.
Propiedad públicaCountObtiene el número de objetos ListItem de la colección.
Propiedad públicaIsReadOnlyObtiene un valor que indica si ListItemCollection es de sólo lectura.
Propiedad públicaIsSynchronizedObtiene un valor que indica si el acceso a ListItemCollection está sincronizado (es seguro para la ejecución de subprocesos).
Propiedad públicaItemObtiene un objeto ListItem en el índice especificado de la colección.
Propiedad públicaSyncRootObtiene el objeto que se puede utilizar para sincronizar el acceso a ListItemCollection.
Arriba

  NombreDescripción
Método públicoAdd(ListItem)Agrega el ListItem especificado al final de la colección.
Método públicoAdd(String)Agrega un ListItem al final de la colección que representa la cadena especificada.
Método públicoAddRangeAgrega a la colección los elementos de la matriz de objetos ListItem.
Método públicoClearQuita todos los objetos ListItem de la colección.
Método públicoContainsDetermina si la colección contiene el elemento especificado.
Método públicoCopyToCopia los elementos de ListItemCollection en el objeto System.Array especificado, empezando por el índice especificado.
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método públicoFindByTextBusca en la colección un objeto ListItem cuya propiedad Text equivalga al texto especificado.
Método públicoFindByValueBusca en la colección un ListItem cuya propiedad Value contenga el valor especificado.
Método públicoGetEnumeratorDevuelve un objeto System.Collections.IEnumerator implementado que contiene todos los objetos ListItem de ListItemCollection.
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoIndexOfDetermina el valor del índice que representa la posición del ListItem especificado en la colección.
Método públicoInsert(Int32, String)Inserta un ListItem que representa la cadena especificada en la colección en la ubicación del índice especificado.
Método públicoInsert(Int32, ListItem)Inserta el ListItem especificado en la ubicación del índice especificado de la colección.
Método públicoRemove(ListItem)Quita el ListItem especificado de la colección.
Método públicoRemove(String)Quita un ListItem de la colección que representa la cadena especificada.
Método públicoRemoveAtQuita el ListItem en el índice especificado de la colección.
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Método de extensión públicoAsParallelHabilita la paralelización de una consulta. (Definido por ParallelEnumerable).
Método de extensión públicoAsQueryableConvierte una interfaz IEnumerable en IQueryable. (Definido por Queryable).
Método de extensión públicoCast<TResult>Convierte los elementos de IEnumerable en el tipo especificado. (Definido por Enumerable).
Método de extensión públicoOfType<TResult>Filtra los elementos de IEnumerable en función de un tipo especificado. (Definido por Enumerable).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoIList.AddInfraestructura. Para obtener una descripción de este miembro, vea Add.
Implementación explícita de interfacesMétodo privadoIList.ContainsInfraestructura. Para obtener una descripción de este miembro, vea Contains.
Implementación explícita de interfacesMétodo privadoIList.IndexOfInfraestructura. Para obtener una descripción de este miembro, vea IndexOf.
Implementación explícita de interfacesMétodo privadoIList.InsertInfraestructura. Para obtener una descripción de este miembro, vea el método Insert.
Implementación explícita de interfacesPropiedad privadaIList.IsFixedSizeInfraestructura. Para obtener una descripción de este miembro, vea la propiedad IsFixedSize.
Implementación explícita de interfacesPropiedad privadaIList.ItemInfraestructura. Para obtener una descripción de este miembro, vea la propiedad Item.
Implementación explícita de interfacesMétodo privadoIList.RemoveInfraestructura. Para obtener una descripción de este miembro, vea el método Remove.
Implementación explícita de interfacesPropiedad privadaIStateManager.IsTrackingViewStateInfraestructura. Para obtener una descripción de este miembro, vea IsTrackingViewState.
Implementación explícita de interfacesMétodo privadoIStateManager.LoadViewStateInfraestructura. Carga el estado previamente guardado.
Implementación explícita de interfacesMétodo privadoIStateManager.SaveViewStateInfraestructura. Devuelve el objeto que contiene los cambios de estado.
Implementación explícita de interfacesMétodo privadoIStateManager.TrackViewStateInfraestructura. Inicia un seguimiento de los cambios de estado.
Arriba

La clase ListItemCollection representa una colección de objetos ListItem. Los objetos ListItem, a su vez, representan los elementos que se muestran en los controles de lista, como por ejemplo ListBox. Para recuperar objetos ListItem de un control de lista mediante programación, utilice uno de los siguientes métodos:

  • Utilice un indizador para obtener un único objeto ListItem de la colección mediante una notación de matriz.

  • Utilice el método CopyTo para copiar el contenido de la colección en un objeto System.Array, que entonces podrá utilizarse para obtener elementos de la colección.

  • Utilice el método GetEnumerator para crear un objeto System.Collections.IEnumerator implementado, que entonces podrá utilizarse para obtener elementos de la colección.

  • Utilice foreach (C#) o For Each (Visual Basic) para recorrer en iteración la colección.

La propiedad Count especifica el número total de elementos de la colección y suele utilizarse para determinar el límite superior de la colección. Se pueden agregar y quitar elementos de la colección mediante los métodos Add y Remove.

En el ejemplo de código siguiente se muestra cómo crear objetos ListItemCollection, agregar elementos a las colecciones y quitar elementos de las colecciones. En el ejemplo, se utiliza el objeto ListItemCollection llamado listBoxData como origen de datos para un control ListBox llamado ListBox1 y se utiliza el objeto ListItemCollection denominado ddBoxData como origen de datos para un control DropDownList llamado DropDownList1.


<%@ Page language="VB" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    Private Sub Page_Load(sender As Object, e As System.EventArgs) Handles MyBase.Load
        ' If this isn't the first time the page is loaded in this session,
        ' then don't recreate the DataTables.
        If Not IsPostBack Then
            ' Create a new ListItemCollection.
            Dim listBoxData As New ListItemCollection()
            ' Add items to the collection.
            listBoxData.Add(New ListItem("apples"))
            listBoxData.Add(New ListItem("bananas"))
            listBoxData.Add(New ListItem("cherries"))
            listBoxData.Add("grapes")
            listBoxData.Add("mangos")
            listBoxData.Add("oranges")
            ' Set the ListItemCollection as the data source for ListBox1.
            ListBox1.DataSource = listBoxData
            ListBox1.DataBind()

            ' Create a new ListItemCollection.
            Dim ddBoxData As New ListItemCollection()
            ' For now, just bind the data to the DropDownList.
            DropDownList1.DataSource = ddBoxData
            DropDownList1.DataBind()
        End If
    End Sub 'Page_Load

    Private Sub moveButton1_Click(sender As Object, e As System.EventArgs) 
        'Set the SelectedIndex to -1 so no items are selected.            
        ' The new item will be set as the selected item when it is added.
        DropDownList1.SelectedIndex = - 1
        ' Add the selected item to DropDownList1.
        DropDownList1.Items.Add(ListBox1.SelectedItem)
        ' Delete the selected item from ListBox1.
        ListBox1.Items.Remove(ListBox1.SelectedItem)
    End Sub 'moveButton1_Click


    Private Sub moveButton2_Click(sender As Object, e As System.EventArgs)
        'Set the SelectedIndex to -1 so no items are selected.
        ' The new item will be set as the selected item when it is added.
        ListBox1.SelectedIndex = - 1
        ' Add the selected item to ListBox1.
        ListBox1.Items.Add(DropDownList1.SelectedItem)
        'Delete the selected item from DropDownList1.
        DropDownList1.Items.Remove(DropDownList1.SelectedItem)
    End Sub 'moveButton2_Click
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>ASP.NET Example</title>
</head>

    <body>
        <form id="form1" runat="server">
            <table cellpadding="6" border="0">
                <tr>
                    <td rowspan="2" valign="top">
                        <asp:ListBox id="ListBox1" runat="server" 
                            SelectionMode="Single" Width="100px">
                        </asp:ListBox>
                    </td>

                    <td>
                        <asp:Button id="moveButton1" runat="server" Text="Move -->"
                            Width="100px" OnClick="moveButton1_Click"></asp:Button>
                    </td>

                    <td rowspan="2" valign="top">
                        <asp:DropDownList Runat="server" ID="DropDownList1"
                            Width="100px">
                        </asp:DropDownList>
                    </td>
                </tr>

                <tr>
                    <td>
                        <asp:Button ID="moveButton2" Runat="server" Text="<-- Move"
                            Width="100px" onClick="moveButton2_Click"></asp:Button>
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>



<%@ Page language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
        // If this isn't the first time the page is loaded in this session,
        // then don't recreate the DataTables.
        if (!IsPostBack)
        {
            // Create a new ListItemCollection.
            ListItemCollection listBoxData = new ListItemCollection();
            // Add items to the collection.
            listBoxData.Add(new ListItem("apples"));
            listBoxData.Add(new ListItem("bananas"));
            listBoxData.Add(new ListItem("cherries"));
            listBoxData.Add("grapes");
            listBoxData.Add("mangos");
            listBoxData.Add("oranges");
            // Set the ListItemCollection as the data source for ListBox1.
            ListBox1.DataSource = listBoxData;
            ListBox1.DataBind();

            // Create a new ListItemCollection.
            ListItemCollection ddBoxData = new ListItemCollection();
            // For now, just bind the data to the DropDownList.
            DropDownList1.DataSource = ddBoxData;
            DropDownList1.DataBind();
        }        
    }

    private void moveButton1_Click(object sender, System.EventArgs e)
    {
        //Set the SelectedIndex to -1 so no items are selected.
        // The new item will be set as the selected item when it is added.
        DropDownList1.SelectedIndex = -1;
        // Add the selected item to DropDownList1.
        DropDownList1.Items.Add(ListBox1.SelectedItem);
        // Delete the selected item from ListBox1.
        ListBox1.Items.Remove(ListBox1.SelectedItem);
    }

    private void moveButton2_Click(object sender, System.EventArgs e)
    {
        //Set the SelectedIndex to -1 so no items are selected.
        // The new item will be set as the selected item when it is added.
        ListBox1.SelectedIndex = -1;
        // Add the selected item to ListBox1.
        ListBox1.Items.Add(DropDownList1.SelectedItem);
        //Delete the selected item from DropDownList1.
        DropDownList1.Items.Remove(DropDownList1.SelectedItem);
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>ASP.NET Example</title>
</head>

    <body>
        <form id="form1" runat="server">
            <table cellpadding="6" border="0">
                <tr>
                    <td rowspan="2" valign="top">
                        <asp:ListBox id="ListBox1" runat="server" 
                            SelectionMode="Single" Width="100px">
                        </asp:ListBox>
                    </td>

                    <td>
                        <asp:Button id="moveButton1" runat="server" Text="Move -->"
                            Width="100px" OnClick="moveButton1_Click"></asp:Button>
                    </td>

                    <td rowspan="2" valign="top">
                        <asp:DropDownList Runat="server" ID="DropDownList1"
                            Width="100px">
                        </asp:DropDownList>
                    </td>
                </tr>

                <tr>
                    <td>
                        <asp:Button ID="moveButton2" Runat="server" Text="<-- Move"
                            Width="100px" onClick="moveButton2_Click"></asp:Button>
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>



<!-- This example demonstrates how to select multiple items from a DataList 
and add the selected items to a DataGrid. The example uses a For Each loop 
to iterate through the ListItem objects in the ListItemCollection of ListBox1. -->




<!-- This example demonstrates how to select multiple items from a DataList and add the 
selected items to a DataGrid. The example uses a foreach loop to iterate through 
the ListItem objects in the ListItemCollection of ListBox1. -->




<%@ Page language="VB" AutoEventWireup="true"%>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
            ' Global Variables.
            Private dv As DataView
            Private dt As New DataTable()

            Private Sub Page_Load(sender As Object, e As System.EventArgs)
                ' Set the number of rows displayed in the ListBox to be
                ' the number of items in the ListBoxCollection.
                ListBox1.Rows = ListBox1.Items.Count

                ' If the DataTable is already stored in the Web form's default
                ' HttpSessionState variable, then don't recreate the DataTable.
                If Session("data") Is Nothing Then
                    ' Add columns to the DataTable.
                    dt.Columns.Add(New DataColumn("Item"))
                    dt.Columns.Add(New DataColumn("Price"))
            ' Store the DataTable in the Session variable so it can be 
                    ' accessed again later.
                    Session("data") = dt

                    ' Use the table to create a DataView, because the DataGrid
                    ' can only bind to a data source that implements IEnumerable.
                    dv = New DataView(dt)

                    ' Set the DataView as the data source, and bind it to the DataGrid.
                    DataGrid1.DataSource = dv
                    DataGrid1.DataBind()
                End If
            End Sub

            Private Sub addButton_Click(sender As Object, e As System.EventArgs)
                ' Add the items selected in ListBox1 to DataGrid1.
                Dim item As ListItem
                For Each item In ListBox1.Items
                    If item.Selected Then
                        ' Add the item to the DataGrid.
                        ' First, get the DataTable from the Session variable.
                        dt = CType(Session("data"), DataTable)

                        If  Not (dt Is Nothing) Then
                            ' Create a new DataRow in the DataTable.
                            Dim dr As DataRow
                            dr = dt.NewRow()
                            ' Add the item to the new DataRow.
                            dr("Item") = item.Text
                            ' Add the item's value to the DataRow.
                            dr("Price") = item.Value
                            ' Add the DataRow to the DataTable.
                            dt.Rows.Add(dr)

                            ' Rebind the data to DataGrid1.
                            dv = new DataView(dt)
                            DataGrid1.DataSource = dv
                            DataGrid1.DataBind()
                        End If
                    End If
                Next item
            End Sub
        </script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title> ListItemCollection Example </title>
</head>

    <body>
        <form id="form1" runat="server">

            <h3> ListItemCollection Example </h3>

            <table cellpadding="6" border="0">
                <tr>
                    <td valign="top">
                        <asp:ListBox id="ListBox1" runat="server" SelectionMode="Multiple">
                            <asp:ListItem Value=".89">apples</asp:ListItem>
                            <asp:ListItem Value=".49">bananas</asp:ListItem>
                            <asp:ListItem Value="2.99">cherries</asp:ListItem>
                            <asp:ListItem Value="1.49">grapes</asp:ListItem>
                            <asp:ListItem Value="2.00">mangos</asp:ListItem>
                            <asp:ListItem Value="1.09">oranges</asp:ListItem>
                        </asp:ListBox>
                    </td>

                    <td valign="top">
                        <asp:Button id="addButton" runat="server" Text="Add -->"
                            Width="100px" OnClick="addButton_Click"></asp:Button>
                    </td>

                    <td valign="top">
                        <asp:DataGrid Runat="server" ID="DataGrid1" CellPadding="4">
                        </asp:DataGrid>
                    </td>
                </tr>
            </table>        
        </form>
    </body>
</html>



<%@ Page language="c#" AutoEventWireup="true"%>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script language="C#" runat="server">
            // Global Variables.
            private DataView dv;
            private DataTable dt = new DataTable();

            private void Page_Load(object sender, System.EventArgs e)
            {
                // Set the number of rows displayed in the ListBox to be
                // the number of items in the ListBoxCollection.
                ListBox1.Rows = ListBox1.Items.Count;

                // If the DataTable is already stored in the Web form's default
                // HttpSessionState variable, then don't recreate the DataTable.
                if (Session["data"] == null)
                {
                    // Add columns to the DataTable.
                    dt.Columns.Add(new DataColumn("Item"));
                    dt.Columns.Add(new DataColumn("Price"));
            // Store the DataTable in the Session variable so it can 
                    // be accessed again later.
                    Session["data"] = dt;

                    // Use the table to create a DataView, because the DataGrid
                    // can only bind to a data source that implements IEnumerable.
                    dv = new DataView(dt);

                    // Set the DataView as the data source, and bind it to the DataGrid.
                    DataGrid1.DataSource = dv;
                    DataGrid1.DataBind();
                }
            }

            private void addButton_Click(object sender, System.EventArgs e)
            {
                // Add the items selected in ListBox1 to DataGrid1.
                foreach (ListItem item in ListBox1.Items)
                {
                    if (item.Selected)
                    {
                        // Add the item to the DataGrid.
                        // First, get the DataTable from the Session variable.
                        dt = (DataTable)Session["data"];

                        if (dt != null)
                        { 
                            // Create a new DataRow in the DataTable.
                            DataRow dr = dt.NewRow();
                            // Add the item to the new DataRow.
                            dr["Item"] = item.Text;
                            // Add the item's value to the DataRow.
                            dr["Price"] = item.Value;
                            // Add the DataRow to the DataTable.
                            dt.Rows.Add(dr);

                            // Rebind the data to DataGrid1.
                            dv = new DataView(dt);
                            DataGrid1.DataSource = dv;
                            DataGrid1.DataBind();
                        }
                    }
                }
            }
        </script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title> ListItemCollection Example </title>
</head>

    <body>
        <form id="form1" runat="server">

            <h3> ListItemCollection Example </h3>

            <table cellpadding="6" border="0">
                <tr>
                    <td valign="top">
                        <asp:ListBox id="ListBox1" runat="server" SelectionMode="Multiple">
                            <asp:ListItem Value=".89">apples</asp:ListItem>
                            <asp:ListItem Value=".49">bananas</asp:ListItem>
                            <asp:ListItem Value="2.99">cherries</asp:ListItem>
                            <asp:ListItem Value="1.49">grapes</asp:ListItem>
                            <asp:ListItem Value="2.00">mangos</asp:ListItem>
                            <asp:ListItem Value="1.09">oranges</asp:ListItem>
                        </asp:ListBox>
                    </td>

                    <td valign="top">
                        <asp:Button id="addButton" runat="server" Text="Add -->"
                            Width="100px" OnClick="addButton_Click"></asp:Button>
                    </td>

                    <td valign="top">
                        <asp:DataGrid Runat="server" ID="DataGrid1" CellPadding="4">
                        </asp:DataGrid>
                    </td>
                </tr>
            </table>        
        </form>
    </body>
</html>


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft