Compartir a través de


ListView.DataKeys Propiedad

Definición

Obtiene una colección de objetos DataKey que representan el valor de clave de los datos para cada elemento de un control ListView.

public:
 virtual property System::Web::UI::WebControls::DataKeyArray ^ DataKeys { System::Web::UI::WebControls::DataKeyArray ^ get(); };
[System.ComponentModel.Browsable(false)]
public virtual System.Web.UI.WebControls.DataKeyArray DataKeys { get; }
[<System.ComponentModel.Browsable(false)>]
member this.DataKeys : System.Web.UI.WebControls.DataKeyArray
Public Overridable ReadOnly Property DataKeys As DataKeyArray

Valor de propiedad

Objeto que contiene los datos de clave para cada elemento de un control ListView.

Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo usar la DataKeys propiedad para determinar los valores de clave de datos de los elementos de un ListView control . También se muestra cómo conservar la selección del usuario en función de un elemento de datos en lugar del comportamiento predeterminado que usa el índice.

void ContactsListView_SelectedIndexChanged(Object sender, EventArgs e)
{
  if (ContactsListView.SelectedIndex >= 0)
    ViewState["SelectedKey"] = ContactsListView.SelectedValue;
  else
    ViewState["SelectedKey"] = null;
}

void ContactsListView_DataBound(Object sender, EventArgs e)
{
  for (int i = 0; i < ContactsListView.Items.Count; i++)
  {
    // Ignore values that cannot be cast as integer.
    try
    {
        if ((int)ContactsListView.DataKeys[i].Value == (int)ViewState["SelectedKey"])
            ContactsListView.SelectedIndex = i;
    }
    catch { }
  }
}
Sub ContactsListView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
  If ContactsListView.SelectedIndex >= 0 Then
    ViewState("SelectedKey") = ContactsListView.SelectedValue
  Else
    ViewState("SelectedKey") = Nothing
  End If
End Sub

Sub ContactsListView_DataBound(ByVal sender As Object, ByVal e As EventArgs)
  For i As Integer = 0 To ContactsListView.Items.Count - 1
    ' Ignore values that cannot be cast as integer.
    Try
      If Convert.ToInt32(ContactsListView.DataKeys(i).Value) = Convert.ToInt32(ViewState("SelectedKey")) Then _
        ContactsListView.SelectedIndex = i
    Catch
    End Try
  Next
End Sub

Comentarios

Cuando se establece la DataKeyNames propiedad , el ListView control crea automáticamente un DataKey objeto para cada elemento del control . El DataKey objeto contiene los valores del campo o campos especificados en la DataKeyNames propiedad . A DataKey continuación, los objetos se agregan a la colección del DataKeys control.

Utilice la DataKeys propiedad para recuperar el DataKey objeto de un elemento de datos específico en el ListView control .

Puede usar la SelectedDataKey propiedad para recuperar el DataKey objeto del elemento seleccionado actualmente. También puede usar la SelectedValue propiedad para recuperar el valor de clave de datos del elemento seleccionado actualmente directamente.

Puede usar la ListViewDataItem.DisplayIndex propiedad para recuperar el DataKey objeto del elemento para el que se hizo clic en un botón de comando.

Se aplica a

Consulte también