GridViewPageEventHandler Delegat

Definicja

Reprezentuje metodę, która obsługuje PageIndexChanging zdarzenie GridView formantu.Represents the method that handles the PageIndexChanging event of a GridView control.

public delegate void GridViewPageEventHandler(System::Object ^ sender, GridViewPageEventArgs ^ e);
public delegate void GridViewPageEventHandler(object sender, GridViewPageEventArgs e);
type GridViewPageEventHandler = delegate of obj * GridViewPageEventArgs -> unit
Public Delegate Sub GridViewPageEventHandler(sender As Object, e As GridViewPageEventArgs)

Parametry

sender
Object

Źródło zdarzenia.The source of the event.

e
GridViewPageEventArgs

GridViewPageEventArgsObiekt, który zawiera dane zdarzenia.A GridViewPageEventArgs object that contains the event data.

Dziedziczenie
GridViewPageEventHandler

Przykłady

W poniższym przykładzie pokazano, jak programowo dodać GridViewPageEventHandler delegata do PageIndexChanging zdarzenia GridView kontrolki.The following example demonstrates how to programmatically add a GridViewPageEventHandler delegate to the PageIndexChanging event of a GridView control.


<%@ 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(Object sender, EventArgs e)
  {

    // Create a new GridView control.
    GridView customersGridView = new GridView();

    // Set the GridView object's properties.
    customersGridView.ID = "CustomersGridView";
    customersGridView.DataSourceID = "CustomersSource";
    customersGridView.AutoGenerateColumns = true;
    customersGridView.EmptyDataText = "No data available.";
    customersGridView.AllowPaging = true;
    customersGridView.AutoGenerateEditButton = true;
    customersGridView.PagerSettings.Mode = PagerButtons.Numeric;
    customersGridView.PagerSettings.Position = PagerPosition.Bottom;
    customersGridView.PagerSettings.PageButtonCount = 10;
    customersGridView.PagerStyle.BackColor = System.Drawing.Color.LightBlue;
    customersGridView.DataKeyNames = new String[] { "CustomerID" };

    // Programmatically register the event-handling methods.
    customersGridView.PageIndexChanging += new GridViewPageEventHandler(this.CustomersGridView_PageIndexChanging);
    customersGridView.RowCancelingEdit += new GridViewCancelEditEventHandler(this.CustomersGridView_RowCancelingEdit);

    // Add the GridView control to the Controls collection
    // of the PlaceHolder control.
    GridViewPlaceHolder.Controls.Add(customersGridView);
    
  }          

  void CustomersGridView_PageIndexChanging(Object sender, GridViewPageEventArgs e)
  {

    // User the sender parameter to retrieve the GridView control
    // that raised the event.
    GridView customersGridView = (GridView)sender;
    
    // Cancel the paging operation if the user attempts to navigate
    // to another page while the GridView control is in edit mode. 
    if (customersGridView.EditIndex != -1)
    {
      // Use the cancel property to cancel the paging operation.
      e.Cancel = true;
      
      // Display an error message.
      int newPageNumber = e.NewPageIndex + 1;
      Message.Text = "Please update the record before moving to page " +
        newPageNumber.ToString() + ".";
    }
    else
    {
      // Clear the error message.
      Message.Text = "";
    }
    
  }

  void CustomersGridView_RowCancelingEdit(Object sender, GridViewCancelEditEventArgs e)
  {
    // Clear the error message.
    Message.Text = "";
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridViewPageEventHandler Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridViewPageEventHandler Example</h3>
            
      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>
                
      <br/>  

      <asp:placeholder id="GridViewPlaceHolder"
        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="CustomersSource"
        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>


<%@ 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(ByVal sender As Object, ByVal e As EventArgs)

    ' Create a new GridView control.
    Dim customersGridView As New GridView()

    ' Set the GridView object's properties.
    customersGridView.ID = "CustomersGridView"
    customersGridView.DataSourceID = "CustomersSource"
    customersGridView.AutoGenerateColumns = True
    customersGridView.EmptyDataText = "No data available."
    customersGridView.AllowPaging = True
    customersGridView.AutoGenerateEditButton = True
    customersGridView.PagerSettings.Mode = PagerButtons.Numeric
    customersGridView.PagerSettings.Position = PagerPosition.Bottom
    customersGridView.PagerSettings.PageButtonCount = 10
    customersGridView.PagerStyle.BackColor = System.Drawing.Color.LightBlue
    Dim keyArray() As String = {"CustomerID"}
    customersGridView.DataKeyNames = keyArray

    ' Programmatically register the event-handling methods.
    AddHandler customersGridView.PageIndexChanging, AddressOf CustomersGridView_PageIndexChanging
    AddHandler customersGridView.RowCancelingEdit, AddressOf CustomersGridView_RowCancelingEdit

    ' Add the GridView control to the Controls collection
    ' of the PlaceHolder control.
    GridViewPlaceHolder.Controls.Add(customersGridView)
    
  End Sub

  Sub CustomersGridView_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)

    ' User the sender parameter to retrieve the GridView control
    ' that raised the event.
    Dim customersGridView As GridView = CType(sender, GridView)
    
    ' Cancel the paging operation if the user attempts to navigate
    ' to another page while the GridView control is in edit mode. 
    If customersGridView.EditIndex <> -1 Then
    
      ' Use the cancel property to cancel the paging operation.
      e.Cancel = True
      
      ' Display an error message.
      Dim newPageNumber As Integer = e.NewPageIndex + 1
      Message.Text = "Please update the record before moving to page " & _
        newPageNumber.ToString() & "."
    
    Else
    
      ' Clear the error message.
      Message.Text = ""
    
    End If
    
  End Sub

  Sub CustomersGridView_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
  
    ' Clear the error message.
    Message.Text = ""
    
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridViewPageEventHandler Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridViewPageEventHandler Example</h3>
            
      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>
                
      <br/>  

      <asp:placeholder id="GridViewPlaceHolder"
        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="CustomersSource"
        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>

Poniższy przykład pokazuje, jak deklaratywnie dodać GridViewPageEventHandler delegata do PageIndexChanging zdarzenia GridView kontrolki.The following example demonstrates how to declaratively add a GridViewPageEventHandler delegate to the PageIndexChanging event of a GridView control.


<%@ 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_PageIndexChanging(Object sender, GridViewPageEventArgs e)
  {
    
    // Cancel the paging operation if the user attempts to navigate
    // to another page while the GridView control is in edit mode. 
    if (CustomersGridView.EditIndex != -1)
    {
      // Use the Cancel property to cancel the paging operation.
      e.Cancel = true;
      
      // Display an error message.
      int newPageNumber = e.NewPageIndex + 1;
      Message.Text = "Please update the record before moving to page " +
        newPageNumber.ToString() + ".";
    }
    else
    {
      // Clear the error message.
      Message.Text = "";
    }
    
  }

  void CustomersGridView_RowCancelingEdit(Object sender, GridViewCancelEditEventArgs e)
  {
    // Clear the error message.
    Message.Text = "";
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView PageIndexChanging Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView PageIndexChanging Example</h3>
            
      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>
                
      <br/>  

      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSource" 
        autogeneratecolumns="true"
        emptydatatext="No data available." 
        allowpaging="true"
        autogenerateeditbutton="true"
        datakeynames="CustomerID"  
        onpageindexchanging="CustomersGridView_PageIndexChanging"
        onrowcancelingedit="CustomersGridView_RowCancelingEdit" 
        runat="server">
                
        <pagersettings mode="Numeric"
          position="Bottom"           
          pagebuttoncount="10"/>
                      
        <pagerstyle backcolor="LightBlue"/>
                
      </asp:gridview>
            
      <!-- 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], [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>


<%@ 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 CustomersGridView_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
    
    ' Cancel the paging operation if the user attempts to navigate
    ' to another page while the GridView control is in edit mode. 
    If CustomersGridView.EditIndex <> -1 Then
    
      ' Use the Cancel property to cancel the paging operation.
      e.Cancel = True
      
      ' Display an error message.
      Dim newPageNumber As Integer = e.NewPageIndex + 1
      Message.Text = "Please update the record before moving to page " & _
        newPageNumber.ToString() & "."
    
    Else
    
      ' Clear the error message.
      Message.Text = ""
    
    End If
    
  End Sub

  Sub CustomersGridView_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
  
    ' Clear the error message.
    Message.Text = ""
    
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView PageIndexChanging Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView PageIndexChanging Example</h3>
            
      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>
                
      <br/>  

      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSource" 
        autogeneratecolumns="true"
        emptydatatext="No data available." 
        allowpaging="true"
        autogenerateeditbutton="true"
        datakeynames="CustomerID"  
        onpageindexchanging="CustomersGridView_PageIndexChanging"
        onrowcancelingedit="CustomersGridView_RowCancelingEdit" 
        runat="server">
                
        <pagersettings mode="Numeric"
          position="Bottom"           
          pagebuttoncount="10"/>
                      
        <pagerstyle backcolor="LightBlue"/>
                
      </asp:gridview>
            
      <!-- 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], [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>

Uwagi

GridViewFormant wywołuje PageIndexChanging zdarzenie, gdy kliknięto przycisk modułu stronicowania (przycisk z CommandName właściwością ustawioną na "Strona") wewnątrz kontrolki, ale zanim GridView kontrolka przechwytuje operację stronicowania.The GridView control raises the PageIndexChanging event when a pager button (a button with its CommandName property set to "Page") within the control is clicked, but before the GridView control handles the paging operation. Dzięki temu można podać metodę obsługi zdarzeń, która wykonuje procedurę niestandardową, taką jak anulowanie operacji stronicowania, za każdym razem, gdy wystąpi zdarzenie.This allows you to provide an event-handling method that performs a custom routine, such as canceling the paging operation, whenever this event occurs.

Uwaga

Przyciski modułu stronicowania są zwykle zlokalizowane w wierszu modułu stronicowania GridView kontrolki.Pager buttons are usually located in the pager row of a GridView control.

Podczas tworzenia GridViewPageEventHandler delegata należy określić metodę, która będzie obsługiwać zdarzenie.When you create a GridViewPageEventHandler delegate, you identify the method that will handle the event. Aby skojarzyć zdarzenie z programem obsługi zdarzeń, Dodaj wystąpienie delegata do zdarzenia.To associate the event with your event handler, add an instance of the delegate to the event. Program obsługi zdarzeń jest wywoływany przy każdym wystąpieniu zdarzenia, o ile nie usunięto delegata.The event handler is called whenever the event occurs, unless you remove the delegate. Aby uzyskać więcej informacji na temat delegatów obsługi zdarzeń, zobacz temat Obsługa iwywoływanie zdarzeń.For more information about event-handler delegates, see Handling and Raising Events.

Metody rozszerzania

GetMethodInfo(Delegate)

Pobiera obiekt, który reprezentuje metodę reprezentowaną przez określony delegat.Gets an object that represents the method represented by the specified delegate.

Dotyczy

Zobacz też