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

更新されたレコードの元のキー フィールドの名前と値のペアのディクショナリが格納されている IOrderedDictionary。

Keys プロパティには、FormView コントロールの DataKeyNames プロパティにリストされているキー フィールドの元の値が格納されます。Keys プロパティを使用して、更新されたレコードのキー フィールドの値にアクセスします。たとえば、これらの値を使用して、更新されたレコードのログを維持できます。
![]() |
---|
ユーザーがキー フィールドの値を更新できるようにした場合、Keys プロパティには、元のキー フィールドの値が格納されます。更新された値は、NewValues プロパティに格納されます。 |
Keys プロパティは、System.Collections.Specialized.IOrderedDictionary インターフェイスを実装する OrderedDictionary オブジェクトを返します。OrderedDictionary オブジェクトは、更新されたレコードのフィールドを表す System.Collections.DictionaryEntry オブジェクトを格納します。フィールド名にアクセスするには、OrderedDictionary オブジェクトの Keys プロパティを使用します。同様に、Values プロパティを使用して、フィールド値にアクセスできます。

Keys プロパティを使用して、更新されたレコードのキー フィールドの値にアクセスする方法を次の例に示します。
<%@ Page language="VB" %> <script runat="server"> Sub EmployeeFormView_ItemUpdated(ByVal sender As Object, ByVal e As FormViewUpdatedEventArgs) Handles EmployeeFormView.ItemUpdated ' Use the Exception property to determine whether an exception ' occurred during the update operation. If e.Exception Is Nothing Then ' Sometimes an error might occur that does not raise an ' exception, but prevents the update operation from ' completing. Use the AffectedRows property to determine ' whether the record was actually updated. If e.AffectedRows = 1 Then ' Use the Keys property to get the value of the key field. Dim keyFieldValue As String = e.Keys("EmployeeID").ToString() ' Display a confirmation message. MessageLabel.Text = "Record " & keyFieldValue & _ " updated successfully. " ' Display the new and original values. DisplayValues(CType(e.NewValues, OrderedDictionary), CType(e.OldValues, OrderedDictionary)) Else ' Display an error message. MessageLabel.Text = "An error occurred during the update operation." ' When an error occurs, keep the FormView ' control in edit mode. e.KeepInEditMode = True End If Else ' Insert the code to handle the exception. MessageLabel.Text = e.Exception.Message ' Use the ExceptionHandled property to indicate that the ' exception has already been handled. e.ExceptionHandled = True e.KeepInEditMode = True End If End Sub Sub DisplayValues(ByVal newValues As OrderedDictionary, ByVal oldValues As OrderedDictionary) MessageLabel.Text &= "<br/></br>" ' Iterate through the new and old values. Display the ' values on the page. Dim i As Integer For i = 0 To oldValues.Count - 1 MessageLabel.Text &= "Old Value=" & oldValues(i).ToString() & _ ", New Value=" & newValues(i).ToString() & "<br/>" Next MessageLabel.Text &= "</br>" End Sub </script> <html> <body> <form runat="server"> <h3>FormViewUpdatedEventArgs Example</h3> <asp:formview id="EmployeeFormView" datasourceid="EmployeeSource" allowpaging="true" datakeynames="EmployeeID" emptydatatext="No employees found." runat="server"> <itemtemplate> <table> <tr> <td rowspan="6"> <asp:image id="EmployeeImage" imageurl='<%# Eval("PhotoPath") %>' alternatetext='<%# Eval("LastName") %>' runat="server"/> </td> <td colspan="2"> </td> </tr> <tr> <td> <b>Name:</b> </td> <td> <%# Eval("FirstName") %> <%# Eval("LastName") %> </td> </tr> <tr> <td> <b>Title:</b> </td> <td> <%# Eval("Title") %> </td> </tr> <tr> <td> <b>Hire Date:</b> </td> <td> <%# Eval("HireDate","{0:d}") %> </td> </tr> <tr height="150" valign="top"> <td> <b>Address:</b> </td> <td> <%# Eval("Address") %><br/> <%# Eval("City") %> <%# Eval("Region") %> <%# Eval("PostalCode") %><br/> <%# Eval("Country") %> </td> </tr> <tr> <td colspan="2"> <asp:linkbutton id="Edit" text="Edit" commandname="Edit" runat="server"/> </td> </tr> </table> </itemtemplate> <edititemtemplate> <table> <tr> <td rowspan="6"> <asp:image id="EmployeeEditImage" imageurl='<%# Eval("PhotoPath") %>' alternatetext='<%# Eval("LastName") %>' runat="server"/> </td> <td colspan="2"> </td> </tr> <tr> <td> <b>Name:</b> </td> <td> <asp:textbox id="FirstNameUpdateTextBox" text='<%# Bind("FirstName") %>' runat="server"/> <asp:textbox id="LastNameUpdateTextBox" text='<%# Bind("LastName") %>' runat="server"/> </td> </tr> <tr> <td> <b>Title:</b> </td> <td> <asp:textbox id="TitleUpdateTextBox" text='<%# Bind("Title") %>' runat="server"/> </td> </tr> <tr> <td> <b>Hire Date:</b> </td> <td> <asp:textbox id="HireDateUpdateTextBox" text='<%# Bind("HireDate", "{0:d}") %>' runat="server"/> </td> </tr> <tr height="150" valign="top"> <td> <b>Address:</b> </td> <td> <asp:textbox id="AddressUpdateTextBox" text='<%# Bind("Address") %>' runat="server"/> <br/> <asp:textbox id="CityUpdateTextBox" text='<%# Bind("City") %>' runat="server"/> <asp:textbox id="RegionUpdateTextBox" text='<%# Bind("Region") %>' width="40" runat="server"/> <asp:textbox id="PostalCodeUpdateTextBox" text='<%# Bind("PostalCode") %>' width="60" runat="server"/> <br/> <asp:textbox id="CountryUpdateTextBox" text='<%# Bind("Country") %>' runat="server"/> </td> </tr> <tr> <td colspan="2"> <asp:linkbutton id="UpdateButton" text="Update" commandname="Update" runat="server"/> <asp:linkbutton id="CancelButton" text="Cancel" commandname="Cancel" runat="server"/> </td> </tr> </table> </edititemtemplate> </asp:formview> <br/><br/> <asp:label id="MessageLabel" forecolor="Red" runat="server"/> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the Web.config file. --> <asp:sqldatasource id="EmployeeSource" selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [Address], [City], [Region], [PostalCode], [Country], [HireDate], [PhotoPath] From [Employees]" updatecommand="Update [Employees] Set [LastName]=@LastName, [FirstName]=@FirstName, [Title]=@Title, [Address]=@Address, [City]=@City, [Region]=@Region, [PostalCode]=@PostalCode, [Country]=@Country Where [EmployeeID]=@EmployeeID" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
<%@ Page language="C#" %> <script runat="server"> void EmployeeFormView_ItemUpdated(Object sender, FormViewUpdatedEventArgs e) { // Use the Exception property to determine whether an exception // occurred during the update operation. if (e.Exception == null) { // Sometimes an error might occur that does not raise an // exception, but prevents the update operation from // completing. Use the AffectedRows property to determine // whether the record was actually updated. if (e.AffectedRows == 1) { // Use the Keys property to get the value of the key field. String keyFieldValue = e.Keys["EmployeeID"].ToString(); // Display a confirmation message. MessageLabel.Text = "Record " + keyFieldValue + " updated successfully. "; // Display the new and original values. DisplayValues((OrderedDictionary)e.NewValues, (OrderedDictionary)e.OldValues); } else { // Display an error message. MessageLabel.Text = "An error occurred during the update operation."; // When an error occurs, keep the FormView // control in edit mode. e.KeepInEditMode = true; } } else { // Insert the code to handle the exception. MessageLabel.Text = e.Exception.Message; // Use the ExceptionHandled property to indicate that the // exception has already been handled. e.ExceptionHandled = true; e.KeepInEditMode = true; } } void DisplayValues(OrderedDictionary newValues, OrderedDictionary oldValues) { MessageLabel.Text += "<br/></br>"; // Iterate through the new and old values. Display the // values on the page. for (int i = 0; i < oldValues.Count; i++) { MessageLabel.Text += "Old Value=" + oldValues[i].ToString() + ", New Value=" + newValues[i].ToString() + "<br/>"; } MessageLabel.Text += "</br>"; } </script> <html> <body> <form runat="server"> <h3>FormViewUpdatedEventArgs Example</h3> <asp:formview id="EmployeeFormView" datasourceid="EmployeeSource" allowpaging="true" datakeynames="EmployeeID" emptydatatext="No employees found." onitemupdated="EmployeeFormView_ItemUpdated" runat="server"> <itemtemplate> <table> <tr> <td rowspan="6"> <asp:image id="EmployeeImage" imageurl='<%# Eval("PhotoPath") %>' alternatetext='<%# Eval("LastName") %>' runat="server"/> </td> <td colspan="2"> </td> </tr> <tr> <td> <b>Name:</b> </td> <td> <%# Eval("FirstName") %> <%# Eval("LastName") %> </td> </tr> <tr> <td> <b>Title:</b> </td> <td> <%# Eval("Title") %> </td> </tr> <tr> <td> <b>Hire Date:</b> </td> <td> <%# Eval("HireDate","{0:d}") %> </td> </tr> <tr height="150" valign="top"> <td> <b>Address:</b> </td> <td> <%# Eval("Address") %><br/> <%# Eval("City") %> <%# Eval("Region") %> <%# Eval("PostalCode") %><br/> <%# Eval("Country") %> </td> </tr> <tr> <td colspan="2"> <asp:linkbutton id="Edit" text="Edit" commandname="Edit" runat="server"/> </td> </tr> </table> </itemtemplate> <edititemtemplate> <table> <tr> <td rowspan="6"> <asp:image id="EmployeeEditImage" imageurl='<%# Eval("PhotoPath") %>' alternatetext='<%# Eval("LastName") %>' runat="server"/> </td> <td colspan="2"> </td> </tr> <tr> <td> <b>Name:</b> </td> <td> <asp:textbox id="FirstNameUpdateTextBox" text='<%# Bind("FirstName") %>' runat="server"/> <asp:textbox id="LastNameUpdateTextBox" text='<%# Bind("LastName") %>' runat="server"/> </td> </tr> <tr> <td> <b>Title:</b> </td> <td> <asp:textbox id="TitleUpdateTextBox" text='<%# Bind("Title") %>' runat="server"/> </td> </tr> <tr> <td> <b>Hire Date:</b> </td> <td> <asp:textbox id="HireDateUpdateTextBox" text='<%# Bind("HireDate", "{0:d}") %>' runat="server"/> </td> </tr> <tr height="150" valign="top"> <td> <b>Address:</b> </td> <td> <asp:textbox id="AddressUpdateTextBox" text='<%# Bind("Address") %>' runat="server"/> <br/> <asp:textbox id="CityUpdateTextBox" text='<%# Bind("City") %>' runat="server"/> <asp:textbox id="RegionUpdateTextBox" text='<%# Bind("Region") %>' width="40" runat="server"/> <asp:textbox id="PostalCodeUpdateTextBox" text='<%# Bind("PostalCode") %>' width="60" runat="server"/> <br/> <asp:textbox id="CountryUpdateTextBox" text='<%# Bind("Country") %>' runat="server"/> </td> </tr> <tr> <td colspan="2"> <asp:linkbutton id="UpdateButton" text="Update" commandname="Update" runat="server"/> <asp:linkbutton id="CancelButton" text="Cancel" commandname="Cancel" runat="server"/> </td> </tr> </table> </edititemtemplate> </asp:formview> <br/><br/> <asp:label id="MessageLabel" forecolor="Red" runat="server"/> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the Web.config file. --> <asp:sqldatasource id="EmployeeSource" selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [Address], [City], [Region], [PostalCode], [Country], [HireDate], [PhotoPath] From [Employees]" updatecommand="Update [Employees] Set [LastName]=@LastName, [FirstName]=@FirstName, [Title]=@Title, [Address]=@Address, [City]=@City, [Region]=@Region, [PostalCode]=@PostalCode, [Country]=@Country Where [EmployeeID]=@EmployeeID" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


FormViewUpdatedEventArgs クラス
FormViewUpdatedEventArgs メンバ
System.Web.UI.WebControls 名前空間
FormView クラス
FormViewUpdatedEventHandler
System.Collections.Specialized.IOrderedDictionary
System.Collections.Specialized.OrderedDictionary
System.Collections.DictionaryEntry
OrderedDictionary.Keys
OrderedDictionary.Values
FormView.ItemUpdated イベント
Weblioに収録されているすべての辞書からFormViewUpdatedEventArgs.Keys プロパティを検索する場合は、下記のリンクをクリックしてください。

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