GridView.DataKeyNames Właściwość

Definicja

Pobiera lub ustawia tablicę zawierającą nazwy pól klucza podstawowego dla elementów wyświetlanych w kontrolce 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()

Wartość właściwości

String[]

Tablica zawierająca nazwy pól klucza podstawowego dla elementów wyświetlanych w kontrolce GridView .

Atrybuty

Przykłady

W poniższym przykładzie pokazano, jak za pomocą DataKeyNames właściwości określić pole klucza źródła danych. W przykładzie DataKeyNames atrybut elementu w adiustacji GridView określa dwa pola klucza przy użyciu przecinka, aby oddzielić nazwy. Aby uruchomić ten przykład, utwórz witrynę sieci Web, która ma następujące elementy:

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

Uwagi

DataKeyNames Użyj właściwości , aby określić pole lub pola reprezentujące klucz podstawowy źródła danych. Tę właściwość należy ustawić tylko na pole lub pola wymagane do unikatowego zidentyfikowania każdego wiersza; na przykład kolumna ID, jeśli wartość całkowita jednoznacznie identyfikuje każdy wiersz. Należy ustawić DataKeyNames właściwość w celu działania funkcji automatycznej aktualizacji i usuwania kontrolki GridView . Wartości tych pól klucza są przekazywane do kontrolki źródła danych w celu określenia wiersza do aktualizacji lub usunięcia.

Jeśli musisz pobrać wartość klucza danych podczas aktualizowania lub usuwania wiersza, użyj Keys właściwości GridViewUpdateEventArgs klasy lub GridViewDeleteEventArgs . Na przykład e.Keys[0] przechowuje wartość pierwszego klucza danych w procedurze RowUpdating obsługi zdarzeń lub RowDeleting .

Jeśli musisz pobrać wartość klucza danych po wybraniu SelectedDataKey wiersza, użyj właściwości .

Po ustawieniu DataKeyNames właściwości kontrolka GridView automatycznie wypełnia swoją DataKeys kolekcję wartościami z określonego pola lub pól, co zapewnia wygodny sposób uzyskiwania dostępu do kluczy podstawowych każdego wiersza.

Uwaga

Kontrolka GridView przechowuje te wartości pól klucza w stanie kontrolki. Jeśli te wartości zawierają poufne informacje, zdecydowanie zaleca się włączenie szyfrowania stanu widoku przez ustawienie ViewStateEncryptionMode właściwości na ViewStateEncryptionMode.Always.

Gdy używasz automatycznie generowanych kolumn pól (przez ustawienie AutoGenerateColumns właściwości na true), GridView kontrolka upewnia się, że kolumny odpowiadające polem lub polam określonym we DataKeyNames właściwości są tylko do odczytu.

Visible Jeśli właściwość pola kolumny jest ustawiona na falsewartość , kolumna nie jest wyświetlana w kontrolceGridView, a dane dla kolumny nie są zaokrąglone do klienta. Jeśli chcesz, aby dane dla kolumny, która nie jest widoczna dla klienta, dodaj nazwę pola do DataKeyNames właściwości.

Dotyczy

Zobacz też