GridView.DataKeyNames Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví pole obsahující názvy polí primárního klíče pro položky zobrazené v ovládacím GridView prvku.
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()
Hodnota vlastnosti
Pole obsahující názvy polí primárního klíče pro položky zobrazené v ovládacím GridView prvku.
- Atributy
Příklady
Následující příklad ukazuje použití DataKeyNames vlastnosti k určení pole klíče zdroje dat. V příkladu DataKeyNames atribut GridView prvku v revizí určuje dvě klíčová pole pomocí čárky k oddělení názvů. Chcete-li spustit tento příklad, vytvořte web, který má následující:
Připojení k ukázkové databázi AdventureWorksLT a připojovacímu řetězci s názvem
AdventureWorksLTConnectionString. Informace o nastavení ukázkové databáze AdventureWorksLT naleznete v tématu Postupy: Nastavení ukázkové databáze AdventureWorksLT pro ASP.NET Vývoj.Třída kontextu dat LINQ-to-SQL s názvem
AdventureWorksLTDataClassesDataContext. Kontext dat musí mít třídu pro tabulku SalesOrderDetails. Informace o vytváření tříd LINQ-to-SQL naleznete v tématu 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>
Poznámky
DataKeyNames Vlastnost slouží k určení pole nebo polí představujících primární klíč zdroje dat. Tuto vlastnost byste měli nastavit pouze na pole nebo pole, která jsou nutná k jedinečné identifikaci každého řádku; Například sloupec ID, pokud celočíselná hodnota jednoznačně identifikuje každý řádek. Aby funkce automatické aktualizace a odstranění GridView ovládacího prvku fungovaly, musíte vlastnost nastavitDataKeyNames. Hodnoty těchto polí klíče se předávají do ovládacího prvku zdroje dat, aby bylo možné určit řádek, který se má aktualizovat nebo odstranit.
Pokud potřebujete při aktualizaci nebo odstranění řádku načíst hodnotu datového GridViewUpdateEventArgs klíče, použijte Keys vlastnost třídy nebo GridViewDeleteEventArgs třídy. Například e.Keys[0] obsahuje hodnotu prvního datového klíče v obslužné rutině RowUpdating události.RowDeleting
Pokud potřebujete načíst hodnotu datového klíče při výběru řádku, použijte SelectedDataKey tuto vlastnost.
DataKeyNames Když je vlastnost nastavena, GridView ovládací prvek automaticky naplní svou DataKeys kolekci hodnotami ze zadaného pole nebo polí, což poskytuje pohodlný způsob, jak získat přístup k primárním klíčům každého řádku.
Poznámka:
Ovládací GridView prvek uloží tyto hodnoty pole klíče do stavu ovládacího prvku. Pokud tyto hodnoty obsahují citlivé informace, důrazně doporučujeme povolit šifrování stavu zobrazení nastavením ViewStateEncryptionMode vlastnosti na ViewStateEncryptionMode.Alwayshodnotu .
Pokud použijete automaticky generované sloupce polí (nastavením AutoGenerateColumns vlastnosti true), GridView ovládací prvek zajistí, aby sloupce, které odpovídají poli nebo polím zadaným ve DataKeyNames vlastnosti, byly jen pro čtení.
Visible Pokud je vlastnost pole sloupce nastavena na false, sloupec není zobrazen v ovládacím GridView prvku a data pro sloupec neprovádí zpáteční cestu do klienta. Pokud chcete, aby data pro sloupec, který není viditelný pro klienta, přidejte název pole do DataKeyNames vlastnosti.