(0) exportieren Drucken
Alle erweitern

GridView.RowCreated-Ereignis

Hinweis: Dieses Ereignis ist neu in .NET Framework, Version 2.0.

Tritt ein, wenn eine Zeile in einem GridView-Steuerelement erstellt wird.

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

public event GridViewRowEventHandler RowCreated
/** @event */
public void add_RowCreated (GridViewRowEventHandler value)

/** @event */
public void remove_RowCreated (GridViewRowEventHandler value)

JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.

Bevor das GridView-Steuerelement gerendert werden kann, muss für jede Zeile im Steuerelement ein GridViewRow-Objekt erstellt werden. Das RowCreated-Ereignis wird jeweils nach dem Erstellen der einzelnen Zeilen im GridView-Steuerelement ausgelöst. Dadurch können Sie eine Ereignisbehandlungsmethode bereitstellen, die bei jedem Auftreten dieses Ereignisses eine benutzerdefinierte Routine ausführt, beispielsweise das Hinzufügen von benutzerdefiniertem Inhalt zu einer Zeile.

Ein GridViewRowEventArgs-Objekt wird an die Ereignisbehandlungsmethode übergeben, wodurch Sie auf die Eigenschaften der erstellten Zeile zugreifen können. Verwenden Sie die Cells-Eigenschaft des GridViewRowEventArgs-Objekts, um auf eine bestimmte Zelle in der Zeile zuzugreifen. Sie können außerdem bestimmen, welcher Zeilentyp (Headerzeile, Datenzeile usw.) erstellt wird, indem Sie die RowType-Eigenschaft verwenden.

Weitere Informationen über die Behandlung von Ereignissen finden Sie unter Behandeln von Ereignissen.

Das folgende Codebeispiel veranschaulicht, wie das RowCreated-Ereignis verwendet wird, um den Index der erstellten Zeile in der CommandArgument-Eigenschaft eines in der Zeile enthaltenen LinkButton-Steuerelements zu speichern. Auf diese Weise können Sie den Index der Zeile bestimmen, die das LinkButton-Steuerelement enthält, wenn ein Benutzer auf die Schaltfläche geklickt hat.


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

<script runat="server">

  void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    // If multiple buttons are used in a GridView control, use the
    // CommandName property to determine which button was clicked.
    if(e.CommandName=="Add")
    {
      // Convert the row index stored in the CommandArgument
      // property to an Integer.
      int index = Convert.ToInt32(e.CommandArgument);
            
      // Retrieve the row that contains the button clicked 
      // by the user from the Rows collection.
      GridViewRow row = CustomersGridView.Rows[index];
            
      // Create a new ListItem object for the customer in the row.     
      ListItem item = new ListItem();
      item.Text = Server.HtmlDecode(row.Cells[2].Text);
            
      // If the customer is not already in the ListBox, add the ListItem 
      // object to the Items collection of the ListBox control. 
      if (!CustomersListBox.Items.Contains(item))
      {
        CustomersListBox.Items.Add(item);
      }           
    }
  }

  void CustomersGridView_RowCreated(Object sender, GridViewRowEventArgs e)
  {
    
    // The GridViewCommandEventArgs class does not contain a 
    // property that indicates which row's command button was
    // clicked. To identify which row's button was clicked, use 
    // the button's CommandArgument property by setting it to the 
    // row's index.
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      // Retrieve the LinkButton control from the first column.
      LinkButton addButton = (LinkButton)e.Row.Cells[0].Controls[0];
          
      // Set the LinkButton's CommandArgument property with the
      // row's index.
      addButton.CommandArgument = e.Row.RowIndex.ToString();
    }

  }
    
</script>

<html>
  <body>
    <form runat="server">
        
      <h3>GridView RowCommand Example</h3>
            
      <table width="100%">         
        <tr>                
          <td width="50%">
                    
            <asp:gridview id="CustomersGridView" 
              datasourceid="CustomersSource"
              allowpaging="true" 
              autogeneratecolumns="false"
              onrowcommand="CustomersGridView_RowCommand"
              onrowcreated="CustomersGridView_RowCreated"  
              runat="server">
                
              <columns>
                <asp:buttonfield buttontype="Link" 
                  commandname="Add" 
                  text="Add"/>
                <asp:boundfield datafield="CustomerID" 
                  headertext="Customer ID"/>
                <asp:boundfield datafield="CompanyName" 
                  headertext="Company Name"/> 
                <asp:boundfield datafield="City" 
                  headertext="City"/>         
              </columns>
                
            </asp:gridview>
                    
          </td>
                    
          <td valign="top" width="50%">
                    
            Customers: <br/>
            <asp:listbox id="CustomersListBox"
              runat="server"/> 
                    
          </td>  
        </tr>      
      </table>
            
      <!-- 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="CustomersSource"
        selectcommand="Select [CustomerID], [CompanyName], [City] From [Customers]"
        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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0
Anzeigen:
© 2014 Microsoft