ListView.ItemUpdated ListView.ItemUpdated ListView.ItemUpdated ListView.ItemUpdated Event

定義

更新操作が要求されたときに、ListView コントロールが項目を更新した後で発生します。Occurs when an update operation is requested, after the ListView control updates the item.

public:
 event EventHandler<System::Web::UI::WebControls::ListViewUpdatedEventArgs ^> ^ ItemUpdated;
public event EventHandler<System.Web.UI.WebControls.ListViewUpdatedEventArgs> ItemUpdated;
member this.ItemUpdated : EventHandler<System.Web.UI.WebControls.ListViewUpdatedEventArgs> 
Public Custom Event ItemUpdated As EventHandler(Of ListViewUpdatedEventArgs) 

次の例は、 ItemUpdatedイベントのイベントハンドラーを追加する方法を示しています。The following example shows how to add an event handler for the ItemUpdated event.

重要

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。This example has a text box that accepts user input, which is a potential security threat. 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。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"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
<script runat="server">

    void Page_Load()
    {
        Message.Text = String.Empty;
    }
        
    //<Snippet2>
    void ContactsListView_ItemUpdated(Object sender, ListViewUpdatedEventArgs e)
    {
        if (e.Exception != null)
        {
            if (e.AffectedRows == 0)
            {
                e.KeepInEditMode = true;
                Message.Text = "An exception occurred updating the contact. " +
                                    "Please verify your values and try again.";
            }
            else
                Message.Text = "An exception occurred updating the contact. " +
                                    "Please verify the values in the recently updated item.";

            e.ExceptionHandled = true;
        }
    }
   //</Snippet2>
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>ListView.ItemUpdated Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>ListView.ItemUpdated Example</h3>
            
      <asp:Label ID="Message"
        ForeColor="Red"          
        runat="server"/>
      <br/>

      <asp:ListView ID="ContactsListView" 
        DataSourceID="ContactsDataSource" 
        DataKeyNames="ContactID"
        OnItemUpdated="ContactsListView_ItemUpdated"  
        runat="server">
        <LayoutTemplate>
          <table cellpadding="2" border="1" runat="server" id="tblContacts" width="640px">
            <tr runat="server" id="itemPlaceholder" />
          </table>
          <asp:DataPager runat="server" ID="PeopleDataPager" PageSize="12">
             <Fields>
               <asp:NextPreviousPagerField 
                ShowFirstPageButton="True" ShowLastPageButton="True"
                    FirstPageText="|&lt;&lt; " LastPageText=" &gt;&gt;|"
                    NextPageText=" &gt; " PreviousPageText=" &lt; " />
             </Fields>
           </asp:DataPager>
         </LayoutTemplate>
         <ItemTemplate>
            <tr runat="server">
              <td valign="top">
                <asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />
                <asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />
              </td>
              <td>
                <asp:Label ID="EmailLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />
              </td>
              <td>
                <asp:LinkButton ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
              </td>
            </tr>
          </ItemTemplate>
          <EditItemTemplate>
            <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"
                  Text='<%# Bind("FirstName") %>' MaxLength="50" Width="200px" /><br />
                <asp:Label runat="server" ID="LastNameLabel" 
                  AssociatedControlID="LastNameTextBox" Text="Last Name" />
                <asp:TextBox ID="LastNameTextBox" runat="server" 
                  Text='<%# Bind("LastName") %>' MaxLength="50" Width="200px" /><br />
                <asp:Label runat="server" ID="EmailLabel" 
                  AssociatedControlID="EmailTextBox" Text="Email" />
                <asp:TextBox ID="EmailTextBox" runat="server" 
                  Text='<%# Bind("EmailAddress") %>' MaxLength="50" Width="200px" />
              </td>
              <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" />
              </td>
            </tr>
          </EditItemTemplate>
      </asp:ListView>

      <!-- 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">
      </asp:SqlDataSource>
      
    </form>
  </body>
</html>
<%@ 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 Page_Load()
        Message.Text = String.Empty
    End Sub

    '<Snippet2>
    Sub ContactsListView_ItemUpdated(sender As Object, e As ListViewUpdatedEventArgs)
        If e.Exception IsNot Nothing Then
            If e.AffectedRows = 0 Then
                e.KeepInEditMode = True
                Message.Text = "An exception occurred updating the contact. " & _
                                    "Please verify your values and try again."
            Else
                Message.Text = "An exception occurred updating the contact. " & _
                                    "Please verify the values in the recently updated item."
            End If

            e.ExceptionHandled = True
        End If
    End Sub
   '</Snippet2>
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>ListView.ItemUpdated Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>ListView.ItemUpdated Example</h3>
            
      <asp:Label ID="Message"
        ForeColor="Red"          
        runat="server"/>
      <br/>

      <asp:ListView ID="ContactsListView" 
        DataSourceID="ContactsDataSource" 
        DataKeyNames="ContactID"
        OnItemUpdated="ContactsListView_ItemUpdated"  
        runat="server">
        <LayoutTemplate>
          <table cellpadding="2" border="1" runat="server" id="tblContacts" width="640px">
            <tr runat="server" id="itemPlaceholder" />
          </table>
          <asp:DataPager runat="server" ID="PeopleDataPager" PageSize="12">
             <Fields>
               <asp:NextPreviousPagerField 
                ShowFirstPageButton="True" ShowLastPageButton="True"
                    FirstPageText="|&lt;&lt; " LastPageText=" &gt;&gt;|"
                    NextPageText=" &gt; " PreviousPageText=" &lt; " />
             </Fields>
           </asp:DataPager>
         </LayoutTemplate>
         <ItemTemplate>
            <tr>
              <td valign="top">
                <asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />
                <asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />
              </td>
              <td>
                <asp:Label ID="EmailLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />
              </td>
              <td>
                <asp:LinkButton ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
              </td>
            </tr>
          </ItemTemplate>
          <EditItemTemplate>
            <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"
                  Text='<%# Bind("FirstName") %>' MaxLength="50" Width="200px" /><br />
                <asp:Label runat="server" ID="LastNameLabel" 
                  AssociatedControlID="LastNameTextBox" Text="Last Name" />
                <asp:TextBox ID="LastNameTextBox" runat="server" 
                  Text='<%# Bind("LastName") %>' MaxLength="50" Width="200px" /><br />
                <asp:Label runat="server" ID="EmailLabel" 
                  AssociatedControlID="EmailTextBox" Text="Email" />
                <asp:TextBox ID="EmailTextBox" runat="server" 
                  Text='<%# Bind("EmailAddress") %>' MaxLength="50" Width="200px" />
              </td>
              <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" />
              </td>
            </tr>
          </EditItemTemplate>
      </asp:ListView>

      <!-- 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">
      </asp:SqlDataSource>
      
    </form>
  </body>
</html>

注釈

イベントItemUpdatedは、 ListViewコントロールが項目を更新した後、項目のUpdateItem [更新] ボタンがクリックされたとき、またはメソッドが呼び出されたときに発生します。The ItemUpdated event is raised when an item's Update button is clicked or the UpdateItem method is called, after the ListView control updates the item. (Update ボタンは、 CommandNameプロパティが "Update" に設定されているボタンコントロールです)。これにより、更新操作の結果の確認など、このイベントが発生するたびにカスタムルーチンを実行できます。(An Update button is a button control whose CommandName property is set to "Update".) This enables you to perform a custom routine whenever this event occurs, such as checking the results of the update operation.

ListViewUpdatedEventArgsオブジェクトがイベントハンドラーに渡されます。これにより、影響を受ける行の数を確認できます。A ListViewUpdatedEventArgs object is passed to the event handler, which enables you to determine the number of rows affected. また、発生した例外を特定することもできます。It also lets you determine what exceptions might have occurred. オブジェクトのプロパティExceptionHandledを設定することによって、例外がイベントハンドラーで処理されたかどうかを示すことができます。 ListViewUpdatedEventArgsYou can indicate whether the exception was handled in the event handler by setting the ExceptionHandled property of the ListViewUpdatedEventArgs object.

イベントを処理する方法の詳細については、次を参照してください。処理とイベントの発生します。For more information about how to handle events, see Handling and Raising Events.

適用対象

こちらもご覧ください