GridViewUpdateEventArgs.Keys Ö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.
Güncelleştirilecek satırın birincil anahtarını temsil eden alan adı/değer çiftlerinin sözlüğünü alır.
public:
property System::Collections::Specialized::IOrderedDictionary ^ Keys { System::Collections::Specialized::IOrderedDictionary ^ get(); };
public System.Collections.Specialized.IOrderedDictionary Keys { get; }
member this.Keys : System.Collections.Specialized.IOrderedDictionary
Public ReadOnly Property Keys As IOrderedDictionary
Özellik Değeri
IOrderedDictionary Güncelleştirilecek satırın birincil anahtarını temsil eden alan adı/değer çiftleri içeren bir nesne.
Örnekler
Aşağıdaki örnekte, güncelleştirilecek satırdaki Keys anahtar alanlarının değerlerine erişmek için özelliğinin nasıl kullanılacağı gösterilmektedir. Değerler daha sonra güncelleştirilmiş kayıtların günlük dosyasına yazılır.
<%@ Page language="C#" %>
<%@ import namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void EmployeesGridView_RowUpdating(Object sender, GridViewUpdateEventArgs e)
{
// Record the update operation in a log file.
// Create the log text.
String logText = "";
// Append the key field values to the log text.
foreach (DictionaryEntry keyEntry in e.Keys)
{
logText += keyEntry.Key + "=" + keyEntry.Value + ";";
}
// Append the text to a log file.
StreamWriter sw;
sw = File.AppendText(Server.MapPath(null) + "\\updatelog.txt");
sw.WriteLine(logText);
sw.Flush();
sw.Close();
}
void EmployeesGridView_RowUpdated(Object sender, GridViewUpdatedEventArgs e)
{
if (e.Exception == null)
{
// The update operation succeeded. Clear the message label.
Message.Text = "";
}
else
{
// The update operation failed. Display an error message.
Message.Text = e.AffectedRows.ToString() + " rows updated. " + e.Exception.Message;
e.ExceptionHandled = true;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>GridViewUpdateEventArgs Keys Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>GridViewUpdateEventArgs Keys Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames attribute as read-only. -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="EmployeesGridView"
datasourceid="EmployeesSqlDataSource"
DataKeyNames="EmployeeID"
autogenerateeditbutton="True"
onrowupdating="EmployeesGridView_RowUpdating"
onrowupdated="EmployeesGridView_RowUpdated"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. -->
<asp:sqldatasource id="EmployeesSqlDataSource"
selectcommand="SELECT [EmployeeID], [LastName], [FirstName], [HireDate] FROM [Employees]"
updatecommand="UPDATE [Employees] SET [LastName] = @LastName, [FirstName] = @FirstName, [HireDate] = @HireDate WHERE [EmployeeID] = @EmployeeID"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
runat="server" >
</asp:sqldatasource>
</form>
</body>
</html>
<%@ Page language="VB" %>
<%@ import namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub EmployeesGridView_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
' Record the update operation in a log file.
' Create the log text.
Dim logText As String = ""
' Append the key field values to the log text.
Dim keyEntry As DictionaryEntry
For Each keyEntry In e.Keys
logText += keyEntry.Key & "=" & keyEntry.Value & ";"
Next keyEntry
' Append the text to a log file.
Dim sw As StreamWriter
sw = File.AppendText(Server.MapPath(Nothing) & "\updatelog.txt")
sw.WriteLine(logText)
sw.Flush()
sw.Close()
End Sub
Sub EmployeesGridView_RowUpdated(ByVal sender As Object, ByVal e As GridViewUpdatedEventArgs)
If e.Exception Is Nothing Then
' The update operation succeeded. Clear the message label.
Message.Text = ""
Else
' The update operation failed. Display an error message.
Message.Text = e.AffectedRows.ToString() & " rows updated. " & e.Exception.Message
e.ExceptionHandled = True
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewUpdateEventArgs Keys Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>GridViewUpdateEventArgs Keys Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames attribute as read-only. -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="EmployeesGridView"
datasourceid="EmployeesSqlDataSource"
DataKeyNames="EmployeeID"
autogenerateeditbutton="True"
onrowupdating="EmployeesGridView_RowUpdating"
onrowupdated="EmployeesGridView_RowUpdated"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. -->
<asp:sqldatasource id="EmployeesSqlDataSource"
selectcommand="SELECT [EmployeeID], [LastName], [FirstName], [HireDate] FROM [Employees]"
updatecommand="UPDATE [Employees] SET [LastName] = @LastName, [FirstName] = @FirstName, [HireDate] = @HireDate WHERE [EmployeeID] = @EmployeeID"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
runat="server" >
</asp:sqldatasource>
</form>
</body>
</html>
Açıklamalar
Denetimin DataKeyNames GridView özelliği ayarlandığında, güncelleştirilecek satırdaki Keys birincil anahtarın değerine erişmek için özelliğini (sözlük) kullanın.
Not
Anahtar olmayan alanların değerlerine erişmek için veya OldValues özelliklerini kullanınNewValues. NewValues özelliği güncelleştirilmiş değerleri, özelliği ise OldValues özgün değerleri içerir.
Keys Sözlük, özelliğinde DataKeyNames belirtilen alan veya alanların ad/değer çiftleriyle otomatik olarak doldurulur. Birincil anahtarı birden çok alan oluşturuyorsa, her anahtar alanı için sözlüğe ayrı bir giriş eklenir Keys .
Anahtar alanının adını belirlemek için, sözlükte Keys bulunan bir System.Collections.DictionaryEntry nesnenin özelliğini kullanınDictionaryEntry.Key. Bir anahtar alanının değerini belirlemek için özelliğini kullanın DictionaryEntry.Value .