ListViewUpdateEventArgs Class


Provides data for the ItemUpdating event.

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


public class ListViewUpdateEventArgs : CancelEventArgs


Initializes a new instance of the ListViewUpdateEventArgs class.


Gets or sets a value indicating whether the event should be canceled.(Inherited from CancelEventArgs.)


Gets the index of the data item that is being updated.


Gets a dictionary of field name/value pairs that represent the key or keys of the item to update.


Gets a dictionary that contains the revised values of the item to update.


Gets a dictionary that contains the original values of the item to update.


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Returns a string that represents the current object.(Inherited from Object.)

The ListView control raises the ItemUpdating event when the UpdateItem method is called or when an item's Update button is clicked, but before the ListView control updates the item. (An Update button is a button whose CommandName property set to "Update".) This enables you to provide an event-handling method that performs a custom routine whenever this event occurs, such as canceling the update operation.

A ListViewUpdateEventArgs object is passed to the event-handling method. This object enables you to determine the index of the current item, and to specify that the update operation should be canceled. To cancel the update operation, set the Cancel property of the ListViewUpdateEventArgs object to true. You can also work with the Keys, OldValues, and NewValues collections before the values are passed to the data source. A typical way to use these collections is to validate or to HTML-encode the values that are supplied by the user before these values are stored in the data source. This can help prevent script-injection attacks.

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

The following example shows how to use the NewValues property to make sure that the user has supplied all values before the data source is updated.

System_CAPS_security Security Note

This example has a text box that accepts user input, which is a potential security threat. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. For more information, see Script Exploits Overview.

<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

<script runat="server">

  void Page_Load()
    Message.Text = String.Empty;

  void ContactsListView_ItemUpdating(Object sender, ListViewUpdateEventArgs e)
    // Cancel the update operation if any of the fields is empty
    // or null.
    foreach (DictionaryEntry de in e.NewValues)
      // Check if the value is null or empty.
      if (de.Value == null || de.Value.ToString().Trim().Length == 0)
        Message.Text = "Cannot set a field to an empty value.";
        e.Cancel = true;

    // Convert the e-mail address to lowercase.
    String emailValue = e.NewValues["EmailAddress"].ToString();
    e.NewValues["EmailAddress"] = emailValue.ToLower();



<html xmlns="" >
  <head id="Head1" runat="server">
    <title>ListView.ItemUpdating Example</title>
    <form id="form1" runat="server">

      <h3>ListView.ItemUpdating Example</h3>

      <asp:Label ID="Message"

      <asp:ListView ID="ContactsListView" 
          <table cellpadding="2" border="1" runat="server" id="tblContacts" width="640px">
            <tr runat="server" id="itemPlaceholder" />
          <asp:DataPager runat="server" ID="PeopleDataPager" PageSize="12">
                ShowFirstPageButton="true" ShowLastPageButton="true"
                FirstPageText="|&lt;&lt; " LastPageText=" &gt;&gt;|"
                NextPageText=" &gt; " PreviousPageText=" &lt; " />
          <tr runat="server">
            <td valign="top">
              <asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />
              <asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />
              <asp:Label ID="EmailLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />
              <asp:LinkButton ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
          <tr style="background-color:#ADD8E6">
            <td valign="top">
              <asp:Label runat="server" ID="FirstNameLabel" 
                AssociatedControlID="FirstNameTextBox" Text="First Name"/>
              <asp:TextBox ID="FirstNameTextBox" runat="server" Width="200px"
                Text='<%#Bind("FirstName") %>' MaxLength="50" /><br />
              <asp:Label runat="server" ID="LastNameLabel" 
                AssociatedControlID="LastNameTextBox" Text="Last Name" />
              <asp:TextBox ID="LastNameTextBox" runat="server" Width="200px"
                Text='<%#Bind("LastName") %>' MaxLength="50" /><br />
              <asp:Label runat="server" ID="EmailLabel"
                AssociatedControlID="EmailTextBox" Text="E-mail" />
              <asp:TextBox ID="EmailTextBox" runat="server" Width="200px"
                Text='<%#Bind("EmailAddress") %>' MaxLength="50" />
            <td colspan="2" valign="top">
              <asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
              <asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />

      <!-- This example uses Microsoft SQL Server and connects      -->
      <!-- to the AdventureWorks sample database. Use an ASP.NET    -->
      <!-- expression to retrieve the connection string value       -->
      <!-- from the Web.config file.                                -->
      <asp:SqlDataSource ID="ContactsDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
        SelectCommand="SELECT [ContactID], [FirstName], [LastName], [EmailAddress] 
          FROM Person.Contact"
        UpdateCommand="UPDATE Person.Contact
          Set [FirstName] = @FirstName, [LastName] = @LastName, [EmailAddress] = @EmailAddress 
          WHERE [ContactID] = @ContactID">


.NET Framework
Available since 3.5

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

Return to top