GridView.DataKeyNames Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Denetimde görüntülenen öğeler için birincil anahtar alanlarının adlarını içeren bir GridView dizi alır veya ayarlar.
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()
Özellik Değeri
Denetimde görüntülenen öğeler için birincil anahtar alanlarının adlarını içeren dizi GridView .
- Öznitelikler
Örnekler
Aşağıdaki örnekte, veri kaynağının DataKeyNames anahtar alanını belirtmek için özelliğinin nasıl kullanılacağı gösterilmektedir. Örnekte, DataKeyNames
işaretlemedeki öğesinin GridView
özniteliği, adları ayırmak için virgül kullanarak iki anahtar alanı belirtir. Bu örneği çalıştırmak için aşağıdakilere sahip bir Web sitesi oluşturun:
AdventureWorksLT örnek veritabanına ve adlı
AdventureWorksLTConnectionString
bir bağlantı dizesine bağlantı. AdventureWorksLT örnek veritabanını ayarlama hakkında bilgi için bkz. Nasıl yapılır: ASP.NET Geliştirme için AdventureWorksLT Örnek Veritabanı Ayarlama.adlı
AdventureWorksLTDataClassesDataContext
bir LINQ-to-SQL veri bağlam sınıfı. Veri bağlamı SalesOrderDetails tablosu için bir sınıfa sahip olmalıdır. LINQ-to-SQL sınıfları oluşturma hakkında bilgi için bkz. 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>
Açıklamalar
Veri kaynağının DataKeyNames birincil anahtarını temsil eden alanı veya alanları belirtmek için özelliğini kullanın. Bu özelliği yalnızca her satırı benzersiz olarak tanımlamak için gereken alan veya alanlara ayarlamalısınız; Örneğin, bir tamsayı değeri her satırı benzersiz olarak tanımlarsa, Kimlik sütunu. Denetimin DataKeyNames otomatik güncelleştirme ve silme özelliklerinin GridView çalışması için özelliğini ayarlamanız gerekir. Bu anahtar alanlarının değerleri, güncelleştirilecek veya silinecek satırı belirtmek için veri kaynağı denetimine geçirilir.
Bir satırı güncelleştirirken veya silerken veri anahtarı değerini almanız gerekiyorsa veya GridViewDeleteEventArgs sınıfının özelliğini GridViewUpdateEventArgs kullanınKeys
. Örneğin, e.Keys[0]
bir RowUpdating veya RowDeleting olay işleyicisindeki ilk veri anahtarının değerini tutar.
Bir satır seçildiğinde veri anahtarı değerini almanız gerekiyorsa özelliğini kullanın SelectedDataKey .
DataKeyNames özelliği ayarlandığında, GridView denetim otomatik olarak koleksiyonunu belirtilen alan veya alanlardaki değerlerle doldurur DataKeys ve bu da her satırın birincil anahtarlarına erişmek için uygun bir yol sağlar.
Not
Denetim, GridView bu anahtar alanı değerlerini denetim durumunda depolar. Bu değerler hassas bilgiler içeriyorsa, özelliğini ViewStateEncryptionMode.Always
olarak ayarlayarak görünüm durumu şifrelemesini ViewStateEncryptionMode etkinleştirmeniz önemle önerilir.
Otomatik olarak oluşturulan alan sütunlarını kullandığınızda (özelliğini true
olarak ayarlayarakAutoGenerateColumns), GridView denetim özelliğinde belirtilen alan veya alanlara karşılık gelen sütunların DataKeyNames salt okunur olmasını sağlar.
Visible Sütun alanının özelliği olarak false
ayarlanırsa, sütun denetimde GridView görüntülenmez ve sütunun verileri istemciye gidiş dönüş yapmaz. Görünür olmayan bir sütunun verilerinin istemci tarafından kullanılabilir olmasını istiyorsanız, alan adını özelliğine DataKeyNames ekleyin.