Compartir a través de


Información general sobre el control de servidor web ListView

Actualización: noviembre 2007

El control ListView de ASP.NET permite enlazar a los elementos de datos devueltos de un origen de datos y los muestra. Los datos se pueden mostrar en páginas. Puede mostrar los elementos individualmente o puede agruparlos.

El control ListView muestra los datos en un formato que se puede definir mediante plantillas y estilos. Resulta útil para los datos de cualquier estructura extensible, de forma similar a los controles DataList y Repeater. Sin embargo, a diferencia de esos controles, con el control ListView puede permitir a los usuarios modificar, insertar, eliminar, ordenar y paginar los datos, todo ello sin código.

Este tema contiene:

  • Enlazar datos al control ListView

  • Crear plantillas para el control ListView

  • Paginar datos

  • Ordenar datos

  • Modificar datos

  • Aplicar estilos a elementos ListView

  • Referencia de clase

  • Ejemplos de código

  • Recursos adicionales

Enlazar datos al control ListView

Puede enlazar el control ListView a datos de las siguientes maneras:

  • Mediante la propiedad DataSourceID. Esto permite enlazar el control ListView a un control de origen de datos, por ejemplo, SqlDataSource. Recomendamos este método porque permite al control ListView aprovechar las funciones del control de origen de datos. También proporciona funcionalidad integrada para ordenar, paginar, insertar, eliminar y actualizar. Este enfoque también permite utilizar expresiones de enlace bidireccionales. Para obtener más información sobre los controles de origen de datos, vea Información general sobre los controles de origen de datos.

  • Mediante la propiedad DataSource. Esto permite enlazar a varios objetos, incluidos los conjuntos de datos y lectores de datos ADO.NET, así como estructuras en memoria como colecciones. Si utiliza este enfoque, deberá escribir código para otras funciones adicionales como ordenar, paginar y actualizar.

Volver al principio

Crear plantillas para el control ListView

Los elementos que muestra un control ListView se definen mediante plantillas, de forma similar a los controles DataList y Repeater. El control ListView permite mostrar los datos como elementos individuales o en grupos.

El diseño principal (raíz) de un control ListView se define creando una plantilla LayoutTemplate. LayoutTemplate debe incluir un control que actúa como marcador de posición de los datos. Por ejemplo, la plantilla de diseño podría incluir un control ASP.NET Table, Panel o Label. (También podría incluir los elementos HTML table, div o span cuyo atributo runat está establecido en "server".) Estos controles contendrán el resultado de cada elemento tal como define la plantilla ItemTemplate, que se puede agrupar en el contenido definido por la plantilla GroupTemplate.

El contenido de los elementos individuales se define en la plantilla ItemTemplate. Normalmente, esta plantilla contiene controles que se enlazan a datos de columnas de datos u otros elementos de datos individuales.

Agrupar elementos

Opcionalmente, puede agrupar los elementos de un control ListView mediante la plantilla GroupTemplate. Normalmente, los elementos se agrupan para crear un diseño de tabla en mosaico. En un diseño de tabla en mosaico, los elementos se repiten en una fila el número de veces especificado en la propiedad GroupItemCount. Para crear un diseño de tabla en mosaico, la plantilla de diseño puede contener un control Table ASP.NET o un elemento table HTML cuyo atributo runat está establecido en "server". A continuación, la plantilla de grupo puede contener un control TableRow ASP.NET (o un elemento tr HTML). La plantilla de elementos puede contener controles individuales que están dentro de un control TableCell ASP.NET (o un elemento td HTML).

Puede utilizar la plantilla EditItemTemplate para proporcionar una interfaz de usuario enlazada a datos que permita a los usuarios modificar los elementos de datos existentes. Puede utilizar la plantilla InsertItemTemplate para definir una interfaz de usuario enlazada a datos que permita a los usuarios agregar un nuevo elemento de datos. Para obtener más información, vea Modificar datos más adelante en este tema.

Plantillas disponibles

En la tabla siguiente se enumeran todas las plantillas que se utilizan con el control ListView.

  • LayoutTemplate
    Identifica la plantilla raíz que define el diseño principal del control. Contiene un objeto de marcador de posición, como una fila de tabla (tr) o un elemento div o span. Este elemento se reemplazará por el contenido definido en las plantillas ItemTemplate o GroupTemplate. También puede incluir un objeto DataPager.

  • ItemTemplate
    Identifica el contenido enlazado a datos que debe mostrarse para los elementos individuales.

  • ItemSeparatorTemplate
    Identifica el contenido que debe representarse entre elementos individuales.

  • GroupTemplate
    Identifica el contenido del diseño de grupo. Contiene un objeto de marcador de posición, como una celda de tabla (td) o un elemento div o span que se reemplazará por el contenido definido en las otras plantillas, por ejemplo, ItemTemplate y EmptyItemTemplate.

  • GroupSeparatorTemplate
    Identifica el contenido que debe representarse entre los grupos de elementos.

  • EmptyItemTemplate
    Identifica el contenido que debe representarse para un elemento vacío cuando se usa una plantilla GroupTemplate. Por ejemplo, si la propiedad GroupItemCount está establecida en 5 y el número total de elementos devueltos por el origen de datos es 8, la última fila de datos mostrada por el control ListView contendrá los tres elementos especificados por la plantilla ItemTemplate y los dos elementos especificados por la plantilla EmptyItemTemplate.

  • EmptyDataTemplate
    Identifica el contenido que debe representarse si el origen de datos no devuelve ningún dato.

  • SelectedItemTemplate
    Identifica el contenido que debe representarse para el elemento de datos seleccionado con el fin de diferenciar el elemento seleccionado de los otros elementos que se muestran.

  • AlternatingItemTemplate
    Identifica el contenido que debe representarse para los elementos alternos con el fin de facilitar la distinción entre elementos consecutivos.

  • EditItemTemplate
    Identifica el contenido que debe representarse cuando se edita un elemento. Para el elemento de datos que se está editando, se representa la plantilla EditItemTemplate en lugar de la plantilla ItemTemplate.

  • InsertItemTemplate
    Identifica el contenido que debe representarse cuando se inserta un elemento. Se representa la plantilla InsertItemTemplate en lugar de una plantilla ItemTemplate al principio o al final de los elementos mostrados por el control ListView. Puede especificar dónde se representará la plantilla InsertItemTemplate mediante la propiedad InsertItemPosition del control ListView.

Crear una plantilla de elementos

En el ejemplo siguiente se muestra la estructura básica de una plantilla de elementos.

<asp:ListView  ID="ListView1" 
    DataSourceID="SqlDataSource1">
  <LayoutTemplate>
    <table  id="table1"  >
      <tr  id="itemPlaceholder" ></tr>
    </table>
  </LayoutTemplate>
  <ItemTemplate>
    <tr runat="server>
      <td >
        <%-- Data-bound content. --%>
        <asp:Label ID="NameLabel"  
          Text='<%#Eval("Name") %>' />
      </td>
    </tr>
  </ItemTemplate>
</asp:ListView>

Para mostrar los elementos individualmente, se agrega un control del servidor a la plantilla LayoutTemplate y se establece la propiedad ID del control en itemPlaceholder. Este control sólo es un marcador de posición para las otras plantillas, normalmente la plantilla ItemTemplate. Por consiguiente, en tiempo de ejecución, este control se reemplazará por el contenido de las otras plantillas.

Nota:

Puede cambiar el valor de la propiedad ID que se utiliza para identificar el contenedor de elementos estableciendo la propiedad ItemPlaceholderID en un nuevo valor.

Después de definir la plantilla de diseño, se agrega una plantilla ItemTemplate que, normalmente, contiene controles para mostrar el contenido enlazado a datos. Puede especificar el marcado que se desea usar para mostrar cada elemento utilizando el método Eval para enlazar los controles a los valores del origen de datos. Para obtener más información sobre el método Eval, vea Información general sobre las expresiones de enlace de datos.

Puede proporcionar el contenido adicional que se desea representar mediante la plantilla ItemSeparatorTemplate, que identifica el contenido que se incluirá en los elementos.

En la ilustración siguiente aparece un diseño que muestra los datos del origen de datos utilizando varias filas de tabla por cada elemento.

En el ejemplo siguiente se muestra cómo crear el diseño.

<asp:ListView  ID="EmployeesListView" 
    DataSourceID="EmployeesDataSource" 
    DataKeyNames="EmployeeID">
  <LayoutTemplate>
    <table cellpadding="2"  id="tblEmployees" 
        style="width:460px">
      <tr  id="itemPlaceholder">
      </tr>
    </table>
    <asp:DataPager  ID="DataPager" PageSize="3">
      <Fields>
        <asp:NumericPagerField
          ButtonCount="5"
          PreviousPageText="<--"
          NextPageText="-->" />
      </Fields>
    </asp:DataPager>
  </LayoutTemplate>
  <ItemTemplate>
     <tr >
       <td valign="top" colspan="2" align="center" 
           class="EmployeeName">
         <asp:Label ID="FirstNameLabel"  
           Text='<%#Eval("FirstName") %>' />
         <asp:Label ID="LastNameLabel"  
           Text='<%#Eval("LastName") %>' />
       </td>
     </tr>
     <tr style="height:72px" >
       <td valign="top" class="EmployeeInfo">
         <asp:Label ID="JobTitleLabel"  
             Text='<%#Eval("JobTitle") %>' />
         <br />
         <asp:HyperLink ID="EmailAddressLink"  
             Text='<%#Eval("EmailAddress") %>'  
             href='<%#"mailto:" + Eval("EmailAddress") %>' />
         <br />
         <asp:Label ID="PhoneLabel"  
             Text='<%#Eval("Phone") %>' />
       </td>
       <td valign="top" class="EmployeeAddress">
         <asp:Label ID="AddressLine1Label"  
             Text='<%#Eval("AddressLine1") %>' />
         <br />
         <asp:Panel ID="AddressLine2Panel"  
            Visible='<%#Eval("AddressLine2").ToString() != String.Empty %>'>
         <asp:Label ID="AddressLine2Label"  
            Text='<%#Eval("AddressLine2").ToString()%>'  />
         <br />
         </asp:Panel>
         <asp:Label ID="CityLabel"  
           Text='<%#Eval("City") %>' />,
         <asp:Label ID="StateProvinceNameLabel"  
           Text='<%#Eval("StateProvinceName") %>' />
         <asp:Label ID="PostalCodeLabel"  
           Text='<%#Eval("PostalCode") %>' />
         <br />
         <asp:Label ID="CountryRegionNameLabel"  
           Text='<%#Eval("CountryRegionName") %>' />
       </td>
     </tr>
   </ItemTemplate>
</asp:ListView>

Crear una plantilla de grupo

En el ejemplo siguiente se muestra cómo crear una plantilla de grupo.

<asp:ListView  ID="ListView1" 
    DataSourceID="SqlDataSource1" 
    GroupItemCount="5">
  <LayoutTemplate>
    <table  id="table1">
      <tr  id="groupPlaceholder">
      </tr>
    </table>
  </LayoutTemplate>
  <GroupTemplate>
    <tr  id="tableRow">
      <td  id="itemPlaceholder" />
    </tr>
  </GroupTemplate>
  <ItemTemplate>
    <td >
      <%-- Data-bound content. --%>
      <asp:Label ID="NameLabel"  
          Text='<%#Eval("Name") %>' />
    </td>
  </ItemTemplate>
</asp:ListView>

Para mostrar los elementos en grupos, se utiliza un control de servidor en la plantilla LayoutTemplate para que actúe como marcador de posición del grupo. Por ejemplo, se puede utilizar un control TableRow. La propiedad ID del control de marcador de posición se establece en groupPlaceholder. En tiempo de ejecución, este control de marcador de posición se reemplazará por el contenido de la plantilla GroupTemplate.

A continuación, se agrega un control de marcador de posición y se establece su propiedad ID en itemPlaceholder. Este control sólo es un marcador de posición para las otras plantillas, normalmente la plantilla ItemTemplate. Por consiguiente, en tiempo de ejecución, este control se reemplazará por el contenido de las otras plantillas. El contenido se repite el número de elementos especificado por la propiedad GroupItemCount del control ListView.

Por último, se agrega una plantilla ItemTemplate con el contenido enlazado a datos que se mostrará en el control contenedor de cada elemento.

Nota:

Puede cambiar el valor de la propiedad ID que se utiliza para identificar el marcador de posición de grupo estableciendo la propiedad GroupPlaceholderID en un nuevo valor.

Puede especificar un separador entre los elementos mediante la plantilla ItemSeparatorTemplate. Puede especificar un separador entre los grupos mediante la propiedad GroupSeparatorTemplate.

En la ilustración siguiente aparece un diseño que muestra varios elementos del origen de datos por cada fila.

En el ejemplo siguiente se muestra cómo crear el diseño.

<asp:ListView  ID="ProductsListView"
    GroupItemCount="3"
    DataSourceID="ProductsSqlDataSource" DataKeyNames="ProductID">
  <LayoutTemplate>
    <table cellpadding="2" 
           id="tblProducts" style="height:320px">
      <tr  id="groupPlaceholder">
      </tr>
    </table>
    <asp:DataPager  ID="DataPager"
                   PageSize="9">
       <Fields>
         <asp:NumericPagerField ButtonCount="3"
              PreviousPageText="<--"
              NextPageText="-->" />
       </Fields>
    </asp:DataPager>
  </LayoutTemplate>
  <GroupTemplate>
    <tr  id="productRow"
        style="height:80px">
      <td  id="itemPlaceholder">
      </td>
    </tr>
  </GroupTemplate>
  <ItemTemplate>
    <td valign="top" align="center" style="width:100" >
      <asp:Image ID="ProductImage" 
           ImageUrl='<%#"~/images/thumbnails/" + 
               Eval("ThumbnailPhotoFileName") %>'
           Height="49" /><br />
      <asp:HyperLink ID="ProductLink" 
           Target="_blank" Text='<% #Eval("Name")%>'
           href='<%#"ShowProduct.aspx?ProductID=" + 
              Eval("ProductID") %>' />
    </td>
  </ItemTemplate>
</asp:ListView>

Volver al principio

Paginar datos

Para que los usuarios puedan paginar los datos de un control ListView, utilice un control DataPager. El control DataPager puede estar dentro de la plantilla LayoutTemplate o en la página fuera del control ListView. Si el control DataPager no está en el control ListView, debe establecer la propiedad PagedControlID en el identificador del control ListView.

El control DataPager admite la interfaz de usuario de paginación integrada. Se puede utilizar el objeto NumericPagerField, que permite a los usuarios seleccionar una página de datos por el número de página. También se puede utilizar el objeto NextPreviousPagerField. Este permite a los usuarios moverse por las páginas de datos de una en una, o ir directamente a la primera o a la última página de datos. El tamaño de las páginas de datos se establece utilizando la propiedad PageSize del control DataPager. Puede utilizar uno o varios objetos del campo de paginación en un solo control DataPager.

También puede crear una interfaz de usuario de paginación personalizada con el objeto TemplatePagerField. En la plantilla TemplatePagerField, puede hacer referencia al control DataPager mediante la propiedad Container. Esta propiedad proporciona acceso a las propiedades del control DataPager. Estas propiedades incluyen el índice de fila de inicio, el tamaño de página y el número total de filas enlazadas actualmente al control ListView.

En el ejemplo siguiente se muestra una clase DataPager que está incluida en la plantilla LayoutTemplate de un control ListView.

<asp:ListView  ID="ListView1" 
    DataSourceID="SqlDataSource1">
  <LayoutTemplate>
    <table  id=" table1">
      <tr  id="itemPlaceholder">
      </tr>
    </table>
    <asp:DataPager  ID="DataPager" PageSize="5">
        <Fields>
          <asp:NumericPagerField ButtonCount="10"
               PreviousPageText="<--"
               NextPageText="-->" />
        </Fields>
    </asp:DataPager>
  </LayoutTemplate>
  <ItemTemplate>
    <tr >
      <%-- Data-bound content. --%>
    </tr>
  </ItemTemplate>
</asp:ListView>

En la ilustración siguiente aparece un diseño que muestra vínculos a las páginas de datos basadas en el número de página, utilizando el objeto NumericPagerField.

En el ejemplo siguiente se muestra cómo crear el diseño.

<asp:DataPager  ID="DataPager" PageSize="10">
  <Fields>
    <asp:NumericPagerField ButtonCount="10"
         CurrentPageLabelCssClass="CurrentPage"
         NumericButtonCssClass="PageNumbers"
         NextPreviousButtonCssClass="PageNumbers" NextPageText=" > "
         PreviousPageText=" < " />
  </Fields>
</asp:DataPager>

En la ilustración siguiente aparece una interfaz de usuario de paginación que muestra vínculos a las páginas de datos siguiente, anterior, primera y última utilizando el objeto NextPreviousPagerField. La interfaz de usuario de paginación también incluye contenido personalizado de una plantilla TemplatePagerField, que muestra el intervalo de números de elementos actuales y el número total de elementos. La plantilla TemplatePagerField incluye un cuadro de texto donde los usuarios pueden escribir el número de elemento al que desean desplazarse. El elemento especificado se muestra como primer elemento de la página.

En el ejemplo siguiente se muestra cómo crear la interfaz de usuario de paginación.

<asp:DataPager  ID="EmployeesDataPager" PageSize="8">
  <Fields>
    <asp:TemplatePagerField>
      <PagerTemplate>
        &nbsp;
        <asp:TextBox ID="CurrentRowTextBox" 
             AutoPostBack="true"
             Text="<%# Container.StartRowIndex + 1%>" 
             Columns="1" 
             style="text-align:right" 
             OnTextChanged="CurrentRowTextBox_OnTextChanged" />
        to
        <asp:Label ID="PageSizeLabel"  Font-Bold="true"
             Text="<%# Container.StartRowIndex + Container.PageSize > Container.TotalRowCount ? Container.TotalRowCount : Container.StartRowIndex + Container.PageSize %>" />
        of
        <asp:Label ID="TotalRowsLabel"  Font-Bold="true"
             Text="<%# Container.TotalRowCount %>" />
      </PagerTemplate>
    </asp:TemplatePagerField>
    <asp:NextPreviousPagerField 
         ShowFirstPageButton="true" ShowLastPageButton="true"
         FirstPageText="|<< " LastPageText=" >>|"
         NextPageText=" > " PreviousPageText=" < " />
  </Fields>
</asp:DataPager>

En el ejemplo siguiente se muestra un controlador de eventos para el evento TextChanged del control TextBox que se incluye en la plantilla TemplatePagerField. El código del controlador se desplaza al elemento de datos especificado por el usuario.

Protected Sub CurrentRowTextBox_OnTextChanged(ByVal sender As Object, _
        ByVal e As EventArgs) 
    Dim t As TextBox = CType(sender, TextBox)
    Dim pager As DataPager = _
        CType(EmployeesListView.FindControl("EmployeesDataPager"), _
        DataPager)
    pager.SetPageProperties(Convert.ToInt32(t.Text) - 1, _
        pager.PageSize, True)
End Sub
protected void CurrentRowTextBox_OnTextChanged(object sender, 
    EventArgs e)
{
    TextBox t = (TextBox)sender;
    DataPager pager = 
        (DataPager)EmployeesListView.FindControl("EmployeesDataPager");
    pager.SetPageProperties(Convert.ToInt32(t.Text) - 1, 
         pager.PageSize, true);
}

Volver al principio

Ordenar datos

Para ordenar los datos que se muestran en un control ListView, se puede agregar un botón a la plantilla LayoutTemplate y establecer la propiedad CommandName del botón en "Ordenar". La propiedad CommandArgument del botón se establece en el nombre de columna por la que desea ordenar. Al hacer clic en el botón Ordenar repetidamente, el sentido de la ordenación cambia entre Ascending y Descending.

Puede especificar varios nombres de columna en la propiedad CommandArgument del botón Ordenar. Sin embargo, el control ListView aplica el sentido de la ordenación a toda la lista de columnas. Como resultado, el sentido de la ordenación se aplica sólo a la última columna de la lista. Por ejemplo, si CommandArgument contiene "LastName, FirstName", al hacer clic en el botón Ordenar repetidamente, se genera una expresión de ordenación como "LastName, FirstName ASC" o "LastName, FirstName, DESC".

En el ejemplo siguiente se muestra un control ListView que incluye un botón Ordenar para ordenar los datos por apellido.

<asp:ListView  ID="ListView1" DataSourceID="SqlDataSource1">
  <LayoutTemplate>
    <asp:LinkButton  ID="SortButton" 
         Text="Sort" CommandName="Sort" CommandArgument="LastName" />
    <table  id="table1">
      <tr  id="itemPlaceholder">
      </tr>
    </table>
    <asp:DataPager  ID="DataPager" PageSize="20">
        <Fields>
          <asp:NumericPagerField ButtonCount="10"
               PreviousPageText="<--"
               NextPageText="-->" />
        </Fields>
    </asp:DataPager>
  </LayoutTemplate>
  <ItemTemplate>
    <tr >
      <td><asp:Label  ID="FirstNameLabel" 
               Text='<%# Eval("FirstName")' /></td>
      <td><asp:Label  ID="LastNameLabel" 
               Text='<%# Eval("LastName")' /></td>
    </tr>
  </ItemTemplate>
</asp:ListView>

Establecer la expresión de ordenación dinámicamente

Puede crear una ordenación personalizada estableciendo la expresión de ordenación de un control ListView dinámicamente. Para ello, se llama al método Sort o se controla el evento Sorting.

En el ejemplo siguiente se muestra un controlador para el evento Sorting. El código aplica el mismo sentido de ordenación a todas las columnas de la propiedad SortExpression.

Protected Sub ContactsListView_Sorting(ByVal sender As Object, _
        ByVal e As ListViewSortEventArgs)

    If (String.IsNullOrEmpty(e.SortExpression)) Then Return

    Dim direction As String = ""
    If Not (ViewState("SortDirection") Is Nothing) Then
        direction = ViewState("SortDirection").ToString()
    End If
    
    If direction = "ASC" Then
        direction = "DESC"
    Else
        direction = "ASC"
    End If

    ViewState("SortDirection") = direction

    Dim sortColumns As String() = e.SortExpression.Split(","c)
    Dim sortExpression As String = sortColumns(0) & " " & direction
    Dim i As Integer
    For i = 1 To sortColumns.Length - 1
        sortExpression += ", " & sortColumns(i) & " " & direction
    Next i
    e.SortExpression = sortExpression
    
  End Sub
protected void EmployeesListView_OnSorting(object sender, 
        ListViewSortEventArgs e)
{
    if (String.IsNullOrEmpty(e.SortExpression)) { return; }
    string direction = "";
    if (ViewState["SortDirection"] != null)
        direction = ViewState["SortDirection"].ToString();

    if (direction == "ASC")
        direction = "DESC";
    else
        direction = "ASC";

    ViewState["SortDirection"] = direction;

    string[] sortColumns = e.SortExpression.Split(',');
    string sortExpression = sortColumns[0] + " " + direction;
    for (int i = 1; i < sortColumns.Length; i++)
        sortExpression += ", " + sortColumns[i] + " " + direction;
    e.SortExpression = sortExpression;
}

Volver al principio

Modificar datos

Se puede crear plantillas para el control ListView que permitan a los usuarios modificar, insertar o eliminar un único elemento de datos.

Para que los usuarios puedan modificar un elemento de datos, agregue una plantilla EditItemTemplate al control ListView. Cuando se cambia un elemento al modo de edición, el control ListView muestra el elemento utilizando la plantilla de edición. La plantilla debe incluir controles enlazados a datos donde el usuario pueda modificar los valores. Por ejemplo, la plantilla puede incluir cuadros de texto donde los usuarios puedan modificar los valores existentes.

Para que los usuarios puedan insertar un nuevo elemento, agregue una plantilla InsertItemTemplate al control ListView. Igual que la plantilla de edición, la plantilla de inserción debe incluir controles enlazados a datos que permitan la entrada de datos. La plantilla InsertItemTemplate se representa al principio o al final de los elementos mostrados. Puede especificar dónde se representará la plantilla InsertItemTemplate mediante la propiedad InsertItemPosition del control ListView.

Normalmente, se agregan botones a las plantillas para que los usuarios puedan especificar qué acción desean realizar. Por ejemplo, se puede agregar un botón Eliminar a una plantilla de elementos para que los usuarios puedan eliminar ese elemento.

Se puede agregar un botón Editar a una plantilla de elementos para que los usuarios puedan cambiar al modo de edición. En EditItemTemplate, se puede incluir un botón Actualizar para que los usuarios puedan guardar los cambios. También se puede incluir un botón Cancelar que permita a los usuarios volver al modo de presentación sin guardar los cambios.

La acción que realizará un botón se define mediante la propiedad CommandName del botón. En la tabla siguiente se enumeran los valores de la propiedad CommandName para los que el control ListView presenta un comportamiento integrado.

  • Select
    Muestra el contenido de la plantilla SelectedItemTemplate para el elemento seleccionado.

  • Insert
    En una plantilla InsertItemTemplate, especifica que el contenido de los controles enlazados a datos se debe guardar en el origen de datos.

  • Edit
    Especifica que el control ListView debe cambiar al modo de edición y mostrar el elemento utilizando la plantilla EditItemTemplate.

  • Update
    En una plantilla EditItemTemplate, especifica que el contenido de los controles enlazados a datos se debe guardar en el origen de datos.

  • Delete
    Elimina el elemento del origen de datos.

  • Cancel
    Cancela la acción actual. Cuando se muestra la plantilla EditItemTemplate, al cancelar la acción se muestra la plantilla SelectedItemTemplate si el elemento es el que está seleccionado actualmente; de lo contrario, se muestra la plantilla ItemTemplate. Cuando se muestra la plantilla InsertItemTemplate, al cancelar la acción se muestra una plantilla InsertItemTemplate vacía.

  • (Valor personalizado)
    De forma predeterminada, no se realiza ninguna acción. Puede proporcionar un valor personalizado para la propiedad CommandName. En el evento ItemCommand, podrá probar el valor y realizar la acción.

Para obtener un ejemplo de un control ListView configurado para habilitar la edición, eliminación e inserción, vea Tutorial: Modificar datos con el control de servidor web ListView.

Volver al principio

Aplicar estilos a elementos ListView

El control ListView no admite propiedades de estilo como BackColor y Font. Para aplicar estilos al control ListView, debe utilizar clases de hojas de estilos en cascada (CSS) o elementos de estilos insertados para los controles individuales de las plantillas ListView.

Algunos objetos admiten propiedades que permiten aplicar estilos a los elementos del resultado. Por ejemplo, el objeto NumericPagerField incluye las propiedades siguientes:

  • Una propiedad NumericButtonCssClass que permite especificar el nombre de la clase de hojas de estilos en cascada para los botones que se desplazan a las páginas de datos por número.

  • Una propiedad CurrentPageLabelCssClass que permite especificar el nombre de la clase de hojas de estilos en cascada para el número de página actual.

  • Una propiedad NextPreviousButtonCssClass que permite especificar el nombre de la clase de hojas de estilos en cascada para los botones que se desplazan al grupo siguiente o anterior de botones numéricos.

Volver al principio

Referencia de clase

En la tabla siguiente se enumeran las clases clave relacionadas con el control ListView.

Clase

Descripción

ListView

Control de servidor que muestra los valores de un origen de datos utilizando plantillas definidas por el usuario. Puede configurar el control para que los usuarios puedan seleccionar, ordenar, eliminar, modificar e insertar registros.

ListViewItem

Objeto que representa un elemento del control ListView.

ListViewDataItem

Objeto que representa un elemento de datos del control ListView.

ListViewItemType

Enumeración que identifica la función de los elementos de un control ListView.

DataPager

Control de servidor que proporciona la funcionalidad de paginación para los controles que implementan la interfaz IPageableItemContainer, como el control ListView.

NumericPagerField

Campo DataPager que permite a los usuarios seleccionar una página de datos por número de página.

NextPreviousPagerField

Campo DataPager que permite a los usuarios moverse por las páginas de datos de una en una, o ir directamente a la primera o a la última página de datos.

TemplatePagerField

Campo DataPager que permite a los usuarios crear una interfaz de usuario de paginación personalizada.

Volver al principio

Ejemplos de código

En las secciones siguientes se incluyen ejemplos de código sobre cómo utilizar el control ListView.

Temas "Cómo..." y tutoriales

Tutorial: Mostrar, paginar y ordenar datos con el control de servidor web ListView

Tutorial: Modificar datos con el control de servidor web ListView

Volver al principio

Vea también

Conceptos

Información general sobre los controles de servidor Web ASP.NET enlazados a datos

Establecer enlaces a bases de datos

Información general sobre los controles de origen de datos

Otros recursos

Globalización y adaptación en ASP.NET

Accesibilidad en ASP.NET