Udostępnij za pośrednictwem


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 GridView elementu w adiustacji 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 identyfikowania każdego wiersza; na przykład kolumna ID, jeśli wartość całkowita unikatowo identyfikuje każdy wiersz. Aby funkcja automatycznej aktualizacji i usuwania kontrolki GridView działała, należy ustawić DataKeyNames właściwość . Wartości tych pól klucza są przekazywane do kontrolki źródła danych w celu określenia wiersza do zaktualizowania 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 wiersza, użyj SelectedDataKey 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 kontroli. 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.

Jeśli używasz automatycznie generowanych kolumn pól (przez ustawienie AutoGenerateColumns właściwości na true), kontrolka GridView zapewnia, że kolumny, które odpowiadają polu 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 GridView kontrolce, a dane dla kolumny nie robią rundy 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ż