Condividi tramite


ListView.DataKeyNames Proprietà

Definizione

Ottiene o imposta una matrice contenente i nomi dei campi di chiave primaria degli elementi visualizzati in un controllo ListView.

public:
 virtual property cli::array <System::String ^> ^ DataKeyNames { cli::array <System::String ^> ^ get(); void set(cli::array <System::String ^> ^ value); };
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.StringArrayConverter))]
public virtual string[] DataKeyNames { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.StringArrayConverter))>]
member this.DataKeyNames : string[] with get, set
Public Overridable Property DataKeyNames As String()

Valore della proprietà

String[]

Una matrice contenente i nomi dei campi di chiave primaria degli elementi visualizzati in un controllo ListView.

Attributi

Esempio

Nell'esempio seguente viene illustrato come utilizzare la DataKeyNames proprietà per specificare il campo chiave dell'origine dati.

<asp:ListView runat="server" 
  ID="EmployeesListView"
  OnItemCommand="EmployeesListView_OnItemCommand"
  DataSourceID="EmployeesDataSource" 
  DataKeyNames="EmployeeID">
  <LayoutTemplate>
    <table runat="server" id="tblEmployees" 
           cellspacing="0" cellpadding="1" width="440px" border="1">
      <tr id="itemPlaceholder" runat="server"></tr>
    </table>
    <asp:DataPager ID="EmployeesDataPager" runat="server" PageSize="10">
      <Fields>
        <asp:NumericPagerField />
      </Fields>
    </asp:DataPager>
  </LayoutTemplate>
  <ItemTemplate>
    <tr runat="server">
      <td>
        <asp:Label runat="server" ID="NameLabel" 
          Text='<%#Eval("LastName") + ", " + Eval("FirstName") %>' />
      </td>
      <td style="width:80px">
        <asp:LinkButton runat="server" 
          ID="SelectEmployeeButton" 
          Text="Add To List" 
          CommandName="AddToList" 
          CommandArgument='<%#Eval("LastName") + ", " + Eval("FirstName") %>' />
      </td>
    </tr>
  </ItemTemplate>
</asp:ListView>

<br /><br />
<b>Selected Employees:</b><br />
<asp:ListBox runat="server" ID="SelectedEmployeesListBox" Rows="10" Width="300px" />
 
<!-- This example uses Microsoft SQL Server and connects      -->
<!-- to the AdventureWorks sample database. Use an ASP.NET    -->
<!-- expression to retrieve the connection string value       -->
<!-- from the Web.config file.                                -->       
<asp:SqlDataSource ID="EmployeesDataSource" runat="server" 
  ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
  SelectCommand="SELECT [EmployeeID], [FirstName], [LastName]
                 FROM HumanResources.vEmployee
                 ORDER BY [LastName], [FirstName], [EmployeeID]">
</asp:SqlDataSource>
<asp:ListView runat="server" 
  ID="EmployeesListView"
  OnItemCommand="EmployeesListView_OnItemCommand"
  DataSourceID="EmployeesDataSource" 
  DataKeyNames="EmployeeID">
  <LayoutTemplate>
    <table runat="server" id="tblEmployees" 
           cellspacing="0" cellpadding="1" width="440px" border="1">
      <tr id="itemPlaceholder" runat="server"></tr>
    </table>
    <asp:DataPager ID="EmployeesDataPager" runat="server" PageSize="10">
      <Fields>
        <asp:NumericPagerField />
      </Fields>
    </asp:DataPager>
  </LayoutTemplate>
  <ItemTemplate>
    <tr runat="server">
      <td>
        <asp:Label runat="server" ID="NameLabel" 
          Text='<%#Eval("LastName") & ", " & Eval("FirstName") %>' />
      </td>
      <td style="width:80px">
        <asp:LinkButton runat="server" 
          ID="SelectEmployeeButton" 
          Text="Add To List" 
          CommandName="AddToList" 
          CommandArgument='<%#Eval("LastName") & ", " & Eval("FirstName") %>' />
      </td>
    </tr>
  </ItemTemplate>
</asp:ListView>

<br /><br />
<b>Selected Employees:</b><br />
<asp:ListBox runat="server" ID="SelectedEmployeesListBox" Rows="10" Width="300px" />
 
<!-- This example uses Microsoft SQL Server and connects      -->
<!-- to the AdventureWorks sample database. Use an ASP.NET    -->
<!-- expression to retrieve the connection string value       -->
<!-- from the Web.config file.                                -->       
<asp:SqlDataSource ID="EmployeesDataSource" runat="server" 
  ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
  SelectCommand="SELECT [EmployeeID], [FirstName], [LastName]
                 FROM HumanResources.vEmployee
                 ORDER BY [LastName], [FirstName], [EmployeeID]">
</asp:SqlDataSource>

Commenti

Utilizzare la DataKeyNames proprietà per specificare il campo o i campi che rappresentano la chiave primaria dell'origine dati. Per impostare questa proprietà in modo dichiarativo, usare un elenco delimitato da virgole di nomi di campo.

Quando la DataKeyNames proprietà è impostata, il controllo popola automaticamente la ListView raccolta DataKeys con i valori del campo o dei campi specificati. In questo modo è possibile accedere alle chiavi primarie di ogni elemento.

Importante

Il ListView controllo archivia i valori dei campi chiave nel campo dello stato del controllo. Se questi valori contengono informazioni riservate, è consigliabile abilitare la crittografia dello stato di visualizzazione impostando la ViewStateEncryptionMode proprietà su ViewStateEncryptionMode.Always.

È necessario impostare la DataKeyNames proprietà per l'aggiornamento automatico e l'eliminazione delle funzionalità del controllo per il ListView funzionamento. I valori di questi campi chiave vengono passati al controllo origine dati per trovare la corrispondenza con l'elemento da aggiornare o eliminare.

I campi specificati come chiavi dati tramite la DataKeyNames proprietà vengono passati al controllo origine dati durante le operazioni di aggiornamento ed eliminazione tramite la Keys raccolta. I campi chiave dati vengono passati al controllo origine dati anche se non sono associati ai controlli in un modello.

Si applica a

Vedi anche