DetailsViewUpdatedEventArgs Class (System.Web.UI.WebControls)

Switch View :
ScriptFree
.NET Framework Class Library
DetailsViewUpdatedEventArgs Class

Provides data for the ItemUpdated event.

Inheritance Hierarchy

System.Object
  System.EventArgs
    System.Web.UI.WebControls.DetailsViewUpdatedEventArgs

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)
Syntax

Visual Basic
Public Class DetailsViewUpdatedEventArgs _
	Inherits EventArgs
C#
public class DetailsViewUpdatedEventArgs : EventArgs
Visual C++
public ref class DetailsViewUpdatedEventArgs : public EventArgs
F#
type DetailsViewUpdatedEventArgs =  
    class
        inherit EventArgs
    end

The DetailsViewUpdatedEventArgs type exposes the following members.

Constructors

  Name Description
Public method DetailsViewUpdatedEventArgs Initializes a new instance of the DetailsViewUpdatedEventArgs class.
Top
Properties

  Name Description
Public property AffectedRows Gets the number of rows affected by the update operation.
Public property Exception Gets the exception (if any) that was raised during the update operation.
Public property ExceptionHandled Gets or sets a value indicating whether an exception that was raised during the update operation was handled in the event handler.
Public property KeepInEditMode Gets or sets a value indicating whether the DetailsView control should remain in edit mode after an update operation.
Public property Keys Gets a dictionary that contains the key field name/value pairs for the updated record.
Public property NewValues Gets a dictionary that contains the new field name/value pairs for the updated record.
Public property OldValues Gets a dictionary that contains the original field name/value pairs for the updated record.
Top
Methods

  Name Description
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Top
Remarks

The DetailsView control raises the ItemUpdated event when an Update button (a button with its CommandName property set to "Update") within the control is clicked, but after the DetailsView control updates the record. This allows you to provide an event handler that performs a custom routine, such as checking the results of an update operation, whenever this event occurs.

A DetailsViewUpdatedEventArgs object is passed to the event handler, which allows you to determine the number of records affected and any exceptions that might have occurred. To determine the number of records affected by the update operation, use the AffectedRows property. Use the Exception property to determine whether any exceptions occurred. You can also indicate whether the exception was handled in the event handler by setting the ExceptionHandled property. If you need to access the key field values for the updated record, use the Keys property. The original and updated non-key field values can be accessed using the OldValues and NewValues properties, respectively.

By default, the DetailsView control returns to the mode specified by the DefaultMode property after an update operation. To keep the DetailsView control in edit mode, set the KeepInEditMode property to true.

For more information about handling events, see Consuming Events.

For a list of initial property values for an instance of the DetailsViewUpdatedEventArgs class, see the DetailsViewUpdatedEventArgs constructor.

Examples

The following code example demonstrates how to use the DetailsViewUpdatedEventArgs object passed to the event handler for the ItemUpdated event to determine whether an exception occurred during an update operation.

Visual Basic


<%@ Page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Sub CustomerDetailsView_ItemUpdated(ByVal sender As Object, ByVal e As DetailsViewUpdatedEventArgs)

    ' Use the Exception property to determine whether an exception
    ' occurred during the insert operation.
    If e.Exception Is Nothing Then

      ' Use the Values property to get the value entered by 
      ' the user for the CompanyName field.
      Dim keyFieldValue As String = e.Keys("CustomerID").ToString()

      ' Display a confirmation message.
      MessageLabel.Text = "Record " & keyFieldValue & _
        " updated successfully. "

      ' Display the old and new values.
      DisplayValues(e)

      If e.AffectedRows = 1 Then

        MessageLabel.Text &= e.AffectedRows.ToString() & _
          " record updated."

      Else

        MessageLabel.Text &= e.AffectedRows.ToString() & _
          " records updated."

      End If

    Else

      ' Insert the code to handle the exception.
      MessageLabel.Text = e.Exception.Message

      ' Use the ExceptionHandled property to indicate that the 
      ' exception is already handled.
      e.ExceptionHandled = True

      ' When an exception occurs, keep the DetailsView
      ' control in edit mode.
      e.KeepInEditMode = True

    End If

  End Sub

  Sub DisplayValues(ByVal e As DetailsViewUpdatedEventArgs)

    MessageLabel.Text &= "<br/></br>"

    ' Iterate through the OldValue and NewValues
    ' properties and display the values.
    Dim i As Integer

    For i = 0 To e.OldValues.Count - 1

      MessageLabel.Text &= "Old Value=" & e.OldValues(i).ToString() & _
        ", New Value=" & e.NewValues(i).ToString() & "<br/>"

    Next

    MessageLabel.Text &= "</br>"

  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

  <head runat="server">
    <title>DetailsViewUpdatedEventArgs Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>DetailsViewUpdatedEventArgs Example</h3>

        <asp:detailsview id="CustomerDetailsView"
          datasourceid="DetailsViewSource"
          autogeneraterows="true"
          autogenerateeditbutton="true"  
          allowpaging="true"
          datakeynames="CustomerID" 
          onitemupdated="CustomerDetailsView_ItemUpdated"
          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>



C#


<%@ 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 CustomerDetailsView_ItemUpdated(Object sender, 
    DetailsViewUpdatedEventArgs e)
  {
    // Use the Exception property to determine whether an exception
    // occurred during the insert operation.
    if (e.Exception == null)
    {
      // Use the Values property to get the value entered by 
      // the user for the CompanyName field.
      String keyFieldValue = e.Keys["CustomerID"].ToString();

      // Display a confirmation message.
      MessageLabel.Text = "Record " + keyFieldValue + 
        " updated successfully. ";

      // Display the old and new values.
      DisplayValues(e);

      if (e.AffectedRows == 1)
      {
        MessageLabel.Text += e.AffectedRows.ToString() + 
          " record updated.";
      }
      else
      {
        MessageLabel.Text += e.AffectedRows.ToString() + 
          " records updated.";
      }
    }
    else
    {
      // Insert the code to handle the exception.
      MessageLabel.Text = e.Exception.Message;

      // Use the ExceptionHandled property to indicate that the 
      // exception is already handled.
      e.ExceptionHandled = true;

      // When an exception occurs, keep the DetailsView
      // control in edit mode.
      e.KeepInEditMode = true;
    }
  }

  void DisplayValues(DetailsViewUpdatedEventArgs e)
  {

    MessageLabel.Text += "<br/></br>";

    // Iterate through the OldValue and NewValues
    // properties and display the values.
    for (int i = 0; i < e.OldValues.Count; i++)
    {
      MessageLabel.Text += "Old Value=" + e.OldValues[i].ToString() +
        ", New Value=" + e.NewValues[i].ToString() + "<br/>";
    }

    MessageLabel.Text += "</br>";

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

  <head runat="server">
    <title>DetailsViewUpdatedEventArgs Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>DetailsViewUpdatedEventArgs Example</h3>

        <asp:detailsview id="CustomerDetailsView"
          datasourceid="DetailsViewSource"
          autogeneraterows="true"
          autogenerateeditbutton="true"  
          allowpaging="true"
          datakeynames="CustomerID" 
          onitemupdated="CustomerDetailsView_ItemUpdated"
          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>



Version Information

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also

Reference

Other Resources