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

Dim instance As DetailsViewUpdateEventArgs Dim value As IOrderedDictionary value = instance.OldValues
更新するレコードの元のフィールドの名前/値ペアのディクショナリを格納している IOrderedDictionary。

OldValues プロパティを使用して、更新されたレコードの元のフィールドの値にアクセスします。たとえば、これらの値を使用して、更新されたレコードのログを維持できます。
![]() |
---|
このプロパティには、キー フィールドは格納されません。キー フィールドにアクセスするには、Keys プロパティを使用します。NewValues プロパティを使用して、ユーザーが入力した新しいフィールド値にアクセスすることもできます。 |
OldValues プロパティは、IOrderedDictionary インターフェイスを実装するオブジェクトを返します。このオブジェクトは、更新するレコードのフィールドを表す DictionaryEntry オブジェクトを格納します。

OldValues プロパティを使用して、更新されているレコードのキー以外のフィールドの元の値にアクセスする方法のコード例を次に示します。
<%@ Page language="VB" %> <script runat="server"> Sub CustomerDetailsView_ItemUpdating(ByVal sender As Object, _ ByVal e As DetailsViewUpdateEventArgs) ' Validate the field values entered by the user. This ' example determines whether the user left any fields ' empty. Use the NewValues property to access the new ' values entered by the user. Dim emptyFieldList As ArrayList = _ ValidateFields(CType(e.NewValues, IOrderedDictionary)) If emptyFieldList.Count > 0 Then ' The user left some fields empty. Display an error message. ' Use the Keys property to retrieve the key field value. Dim keyValue As String = e.Keys("CustomerID").ToString() MessageLabel.Text = _ "You must enter a value for all fields of record " & _ keyValue & ".<br/>The following fields are missing:<br/><br/>" ' Display the missing fields. Dim value As String For Each value In emptyFieldList ' Use the OldValues property access the original value ' of a field. MessageLabel.Text &= value & " - Original Value = " & _ e.OldValues(value).ToString() & "<br>" Next ' Cancel the update operation. e.Cancel = True Else ' The field values passed validation. Clear the ' error message label. MessageLabel.Text = "" End If End Sub Function ValidateFields(ByVal list As IOrderedDictionary) _ As ArrayList ' Create an ArrayList object to store the ' names of any empty fields. Dim emptyFieldList As New ArrayList() ' Iterate though the field values entered by ' the user and check for an empty field. Empty ' fields contain a null value. Dim entry As DictionaryEntry For Each entry In list If entry.Value Is Nothing Then ' Add the field name to the ArrayList object. emptyFieldList.Add(entry.Key.ToString()) End If Next Return emptyFieldList End Function Sub CustomerDetailsView_ModeChanging(ByVal sender As Object, ByVal e As DetailsViewModeEventArgs) If e.CancelingEdit Then ' The user canceled the update operation. ' Clear the error message label. MessageLabel.Text = "" End If End Sub </script> <html> <body> <form runat="server"> <h3>DetailsViewUpdateEventArgs Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" autogeneraterows="true" autogenerateeditbutton="true" allowpaging="true" datakeynames="CustomerID" onitemupdating="CustomerDetailsView_ItemUpdating" onmodechanging="CustomerDetailsView_ModeChanging" runat="server"> <pagersettings position="Bottom"/> </asp:detailsview> <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="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" updatecommand="Update [Customers] Set [CompanyName]=@CompanyName, [Address]=@Address, [City]=@City, [PostalCode]=@PostalCode, [Country]=@Country Where [CustomerID]=@CustomerID" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
<%@ Page language="C#" %> <script runat="server"> void CustomerDetailsView_ItemUpdating(Object sender, DetailsViewUpdateEventArgs e) { // Validate the field values entered by the user. This // example determines whether the user left any fields // empty. Use the NewValues property to access the new // values entered by the user. ArrayList emptyFieldList = ValidateFields((IOrderedDictionary)e.NewValues); if (emptyFieldList.Count > 0) { // The user left some fields empty. // Display an error message. // Use the Keys property to retrieve the key field value. String keyValue = e.Keys["CustomerID"].ToString(); MessageLabel.Text = "You must enter a value for all fields of record " + keyValue + ".<br/>The following fields are missing:<br/><br/>"; // Display the missing fields. foreach (String value in emptyFieldList) { // Use the OldValues property access the original // value of a field. MessageLabel.Text += value + " - Original Value = " + e.OldValues[value].ToString() + "<br>"; } // Cancel the update operation. e.Cancel = true; } else { // The field values passed validation. Clear the // error message label. MessageLabel.Text = ""; } } ArrayList ValidateFields(IOrderedDictionary list) { // Create an ArrayList object to store the // names of any empty fields. ArrayList emptyFieldList = new ArrayList(); // Iterate though the field values entered by // the user and check for an empty field. Empty // fields contain a null value. foreach (DictionaryEntry entry in list) { if (entry.Value == null) { // Add the field name to the ArrayList object. emptyFieldList.Add(entry.Key.ToString()); } } return emptyFieldList; } void CustomerDetailsView_ModeChanging(Object sender, DetailsViewModeEventArgs e) { if (e.CancelingEdit) { // The user canceled the update operation. // Clear the error message label. MessageLabel.Text = ""; } } </script> <html> <body> <form runat="server"> <h3>DetailsViewUpdateEventArgs Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" autogeneraterows="true" autogenerateeditbutton="true" allowpaging="true" datakeynames="CustomerID" onitemupdating="CustomerDetailsView_ItemUpdating" onmodechanging="CustomerDetailsView_ModeChanging" runat="server"> <pagersettings position="Bottom"/> </asp:detailsview> <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="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" updatecommand="Update [Customers] Set [CompanyName]=@CompanyName, [Address]=@Address, [City]=@City, [PostalCode]=@PostalCode, [Country]=@Country Where [CustomerID]=@CustomerID" 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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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

- DetailsViewUpdateEventArgs.OldValues プロパティのページへのリンク