GridView.DataKeyNames 속성

정의

GridView 컨트롤에 표시된 항목에 대한 기본 키 필드의 이름이 들어 있는 배열을 가져오거나 설정합니다.

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

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

특성

예제

다음 예제에서는 사용 하는 방법을 보여 줍니다는 DataKeyNames 데이터 원본의 키 필드를 지정 하는 속성입니다. 예제에서 태그에 있는 요소의 GridView 특성은 DataKeyNames 쉼표를 사용하여 이름을 구분하여 두 개의 키 필드를 지정합니다. 이 예제를 실행하려면 다음이 포함된 웹 사이트를 만듭니다.

  • AdventureWorksLT 샘플 데이터베이스에 대한 연결 및 라는 AdventureWorksLTConnectionString연결 문자열입니다. AdventureWorksLT 샘플 데이터베이스를 설정하는 방법에 대한 자세한 내용은 방법: ASP.NET 개발을 위한 AdventureWorksLT 샘플 데이터베이스 설정을 참조하세요.

  • 라는 AdventureWorksLTDataClassesDataContextLINQ-to-SQL 데이터 컨텍스트 클래스입니다. 데이터 컨텍스트에는 SalesOrderDetails 테이블에 대한 클래스가 있어야 합니다. LINQ-SQL 클래스를 만드는 방법에 대한 자세한 내용은 LINQ to SQL 참조하세요.

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="AdventureWorksLTDataClassesDataContext"
    EnableDelete="True" EnableInsert="True" EnableUpdate="True" 
    TableName="SalesOrderDetails">
</asp:LinqDataSource>

<asp:GridView ID="GridView1" runat="server" 
    AutoGenerateColumns="False" 
    DataKeyNames="SalesOrderID,SalesOrderDetailID"
    DataSourceID="LinqDataSource1">
    <Columns>
        <asp:CommandField ShowDeleteButton="True" 
            ShowEditButton="True" />
        <asp:BoundField DataField="SalesOrderID" 
            HeaderText="SalesOrderID" ReadOnly="True"
            SortExpression="SalesOrderID" />
        <asp:BoundField DataField="SalesOrderDetailID" 
            HeaderText="SalesOrderDetailID" InsertVisible="False"
            ReadOnly="True" SortExpression="SalesOrderDetailID" />
        <asp:BoundField DataField="OrderQty" 
            HeaderText="OrderQty" SortExpression="OrderQty" />
        <asp:BoundField DataField="ProductID" 
            HeaderText="ProductID" SortExpression="ProductID" />
        <asp:BoundField DataField="UnitPrice" 
            HeaderText="UnitPrice" SortExpression="UnitPrice" />
        <asp:BoundField DataField="ModifiedDate" 
            HeaderText="ModifiedDate" SortExpression="ModifiedDate" />
    </Columns>
</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="AdventureWorksLTDataClassesDataContext"
    EnableDelete="True" EnableInsert="True" EnableUpdate="True" 
    TableName="SalesOrderDetails">
</asp:LinqDataSource>

<asp:GridView ID="GridView1" runat="server" 
    AutoGenerateColumns="False" 
    DataKeyNames="SalesOrderID,SalesOrderDetailID"
    DataSourceID="LinqDataSource1">
    <Columns>
        <asp:CommandField ShowDeleteButton="True" 
            ShowEditButton="True" />
        <asp:BoundField DataField="SalesOrderID" 
            HeaderText="SalesOrderID" ReadOnly="True"
            SortExpression="SalesOrderID" />
        <asp:BoundField DataField="SalesOrderDetailID" 
            HeaderText="SalesOrderDetailID" InsertVisible="False"
            ReadOnly="True" SortExpression="SalesOrderDetailID" />
        <asp:BoundField DataField="OrderQty" 
            HeaderText="OrderQty" SortExpression="OrderQty" />
        <asp:BoundField DataField="ProductID" 
            HeaderText="ProductID" SortExpression="ProductID" />
        <asp:BoundField DataField="UnitPrice" 
            HeaderText="UnitPrice" SortExpression="UnitPrice" />
        <asp:BoundField DataField="ModifiedDate" 
            HeaderText="ModifiedDate" SortExpression="ModifiedDate" />
    </Columns>
</asp:GridView>

설명

사용 된 데이터 원본의 DataKeyNames 기본 키를 나타내는 필드 또는 필드를 지정 하는 속성입니다. 이 속성은 각 행을 고유하게 식별하는 데 필요한 필드 또는 필드로만 설정해야 합니다. 예를 들어 정수 값이 각 행을 고유하게 식별하는 경우 ID 열입니다. 컨트롤의 DataKeyNames 자동 업데이트 및 삭제 기능이 GridView 작동하려면 속성을 설정해야 합니다. 이러한 키 필드의 값은 업데이트 또는 삭제할 행을 지정하기 위해 데이터 원본 컨트롤에 전달됩니다.

행을 업데이트하거나 삭제할 때 데이터 키 값을 검색해야 하는 경우 또는 GridViewDeleteEventArgs 클래스의 GridViewUpdateEventArgs 속성을 사용합니다Keys. 예를 들어 는 e.Keys[0] 또는 RowDeleting 이벤트 처리기에서 RowUpdating 첫 번째 데이터 키의 값을 보유합니다.

행을 선택할 때 데이터 키 값을 검색해야 하는 경우 속성을 사용합니다 SelectedDataKey .

속성이 DataKeyNames 설정되면 컨트롤은 각 행의 GridView 기본 키에 액세스하는 편리한 방법을 제공하는 지정된 필드 또는 필드의 값으로 해당 컬렉션을 자동으로 채웁니다 DataKeys .

참고

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

자동으로 생성된 필드 열을 사용하는 경우(속성을 로 설정 AutoGenerateColumns 하여) GridView 컨트롤은 속성trueDataKeyNames 지정된 필드 또는 필드에 해당하는 열이 읽기 전용인지 확인합니다.

열 필드의 Visible 속성을 로 설정 false하면 열이 컨트롤에 GridView 표시되지 않고 열의 데이터가 클라이언트로 왕복하지 않습니다. 클라이언트에서 볼 수 없는 열의 데이터를 사용하려면 속성에 필드 이름을 DataKeyNames 추가합니다.

적용 대상

추가 정보