ListView.DataKeyNames 속성

정의

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()

속성 값

String[]

ListView 컨트롤에 표시된 항목의 기본 키 필드 이름이 들어 있는 배열입니다.

특성

예제

다음 예제에서는 속성을 사용 하 여 DataKeyNames 데이터 원본의 키 필드를 지정 하는 방법을 보여 있습니다.

<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>

설명

DataKeyNames 속성을 사용하여 데이터 원본의 기본 키를 나타내는 필드 또는 필드를 지정할 수 있습니다. 이 속성을 선언적으로 설정하려면 쉼표로 구분된 필드 이름 목록을 사용합니다.

속성이 DataKeyNames 설정되면 컨트롤이 ListView 지정된 필드 또는 필드의 값으로 해당 컬렉션을 자동으로 채웁니다 DataKeys . 이렇게 하면 각 항목의 기본 키에 편리하게 액세스할 수 있습니다.

중요

컨트롤은 ListView 컨트롤 상태 필드에 키 필드 값을 저장합니다. 이러한 값에 중요한 정보가 포함된 경우 속성을 ViewStateEncryptionMode.Always.로 설정하여 뷰 상태 암호화를 ViewStateEncryptionMode 사용하도록 설정하는 것이 좋습니다.

작동하려면 컨트롤의 DataKeyNames 자동 업데이트 및 삭제 기능에 ListView 대한 속성을 설정해야 합니다. 이러한 키 필드의 값은 업데이트 또는 삭제할 항목과 일치하기 위해 데이터 원본 컨트롤에 전달됩니다.

속성을 사용하여 데이터 키로 지정된 필드는 컬렉션을 사용하여 DataKeyNames Keys 업데이트 및 삭제 작업 중에 데이터 원본 제어에 전달됩니다. 데이터 키 필드는 템플릿의 컨트롤에 바인딩되지 않은 경우에도 데이터 원본 컨트롤에 전달됩니다.

적용 대상

추가 정보