GridViewUpdateEventArgs.Keys プロパティ
アセンブリ: System.Web (system.web.dll 内)

更新する行の主キーを表すフィールドの名前と値のペアが格納された System.Collections.Specialized.IOrderedDictionary オブジェクト。

GridView コントロールの DataKeyNames プロパティが設定されている場合、Keys プロパティ (ディクショナリ) を使用して、更新する行の主キーの値にアクセスします。
![]() |
---|
キー以外のフィールドの値にアクセスするには、NewValues プロパティまたは OldValues プロパティを使用します。NewValues プロパティには更新後の値が格納され、OldValues プロパティには元の値が格納されます。 |
Keys ディクショナリには、DataKeyNames プロパティで指定された 1 つ以上のフィールドの名前と値のペアが自動的に格納されます。主キーが複数のフィールドで構成されている場合、キー フィールドごとに別のエントリが Keys ディクショナリに追加されます。
キー フィールドの名前を確認するには、Keys ディクショナリに格納されている System.Collections.DictionaryEntry オブジェクトの DictionaryEntry.Key プロパティを使用します。キー フィールドの値を確認するには、DictionaryEntry.Value プロパティを使用します。

Keys プロパティを使用して、更新する行のキー フィールドの値にアクセスする方法を次の例に示します。その後、更新されたレコードのログ ファイルに値が書き込まれます。
<%@ 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 i As Integer For i = 0 To e.Keys.Count - 1 logText += e.Keys(i) & ";" Next ' 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 > <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" 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" > <DeleteParameters> <asp:Parameter Name="EmployeeID" Type="Int32" /> </DeleteParameters> </asp:sqldatasource> </form> </body> </html>
<%@ 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 > <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" 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" > <DeleteParameters> <asp:Parameter Name="EmployeeID" Type="Int32" /> </DeleteParameters> </asp:sqldatasource> </form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からGridViewUpdateEventArgs.Keys プロパティを検索する場合は、下記のリンクをクリックしてください。

- GridViewUpdateEventArgs.Keys プロパティのページへのリンク