GridView.DataKeyNames Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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:
Połączenie z przykładową bazą danych AdventureWorksLT i parametrami połączenia o nazwie
AdventureWorksLTConnectionString
. Aby uzyskać informacje o sposobie konfigurowania przykładowej bazy danych AdventureWorksLT, zobacz How to: Set Up an AdventureWorksLT Sample Database for ASP.NET Development (Instrukcje: konfigurowanie przykładowej bazy danych AdventureWorksLT na potrzeby programowania w ASP.NET).Klasa kontekstu danych LINQ-to-SQL o nazwie
AdventureWorksLTDataClassesDataContext
. Kontekst danych musi mieć klasę tabeli SalesOrderDetails. Aby uzyskać informacje na temat tworzenia klas LINQ-to-SQL, zobacz 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>
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 false
wartość , 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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla