GridViewUpdatedEventArgs.NewValues Property
Gets a dictionary that contains the new field name/value pairs for the updated record.
Assembly: System.Web (in System.Web.dll)
Property Value
Type: System.Collections.Specialized.IOrderedDictionaryA dictionary of the new field name/value pairs for the updated record.
Use the NewValues property to access the new field values for the updated record. For example, you can use these values to keep a log of updated records.
The NewValues property returns an object that implements the System.Collections.Specialized.IOrderedDictionary interface. The object contains System.Collections.DictionaryEntry objects that represent the fields of the updated record.
Note |
|---|
As a shortcut, you can also use the indexer of the IOrderedDictionary object to access the field values directly. |
The following example shows how to access the new values entered by the user for the non-key fields of the updated record.
<%@ Page language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> void CustomersGridView_RowUpdated(Object sender, GridViewUpdatedEventArgs 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["CustomerID"].ToString(); // Display a confirmation message. Message.Text = "Record " + keyFieldValue + " updated successfully. "; // Display the new and original values. DisplayValues((OrderedDictionary)e.NewValues, (OrderedDictionary)e.OldValues); } else { // Display an error message. Message.Text = "An error occurred during the update operation."; // When an error occurs, keep the GridView // control in edit mode. e.KeepInEditMode = true; } } else { // Insert the code to handle the exception. Message.Text = e.Exception.Message; // Use the ExceptionHandled property to indicate that the // exception is already handled. e.ExceptionHandled = true; e.KeepInEditMode = true; } } void DisplayValues(OrderedDictionary newValues, OrderedDictionary oldValues) { Message.Text += "<br/></br>"; // Iterate through the new and old values. Display the // values on the page. for (int i = 0; i < oldValues.Count; i++) { Message.Text += "Old Value=" + oldValues[i].ToString() + ", New Value=" + newValues[i].ToString() + "<br/>"; } Message.Text += "</br>"; } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>GridViewUpdatedEventArgs Example</title> </head> <body> <form id="form1" runat="server"> <h3>GridViewUpdatedEventArgs Example</h3> <!-- The GridView control automatically sets the columns --> <!-- specified in the datakeynames property as read-only. --> <!-- No input controls are rendered for these columns in --> <!-- edit mode. --> <asp:gridview id="CustomersGridView" datasourceid="CustomersSqlDataSource" autogeneratecolumns="true" autogenerateeditbutton="true" allowpaging="true" datakeynames="CustomerID" onrowupdated="CustomersGridView_RowUpdated" runat="server"> </asp:gridview> <br/> <asp:label id="Message" 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="CustomersSqlDataSource" 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"> </asp:sqldatasource> </form> </body> </html>
Available since 2.0
