GridViewPageEventHandler (Delegado)
Ensamblado: System.Web (en system.web.dll)
/** @delegate */ public delegate void GridViewPageEventHandler ( Object sender, GridViewPageEventArgs e )
No aplicable.
Parámetros
- sender
Origen del evento.
- e
Objeto GridViewPageEventArgs que contiene los datos del evento.
El control GridView provoca el evento PageIndexChanging cuando se hace clic en un botón de paginación (botón con el valor de la propiedad CommandName establecido en "Page") dentro del control, pero antes de que el control GridView controle la operación de paginación. Esto permite proporcionar un método de control del evento que realiza una rutina personalizada, como cancelar la operación de paginación, siempre que se produce este evento.
Nota: |
|---|
| Los botones de paginación están situados normalmente en la fila de paginación de un control GridView. |
Cuando se crea un delegado GridViewPageEventHandler, se identifica el método que controlará el evento. Para asociar el evento al controlador del evento, se debe agregar al evento una instancia del delegado. Siempre que se produzca el evento, se llamará al controlador del evento, a menos que se elimine el delegado. Para obtener más información sobre los delegados de los controladores de eventos, vea Eventos y delegados.
El siguiente ejemplo muestra cómo agregar un delegado GridViewPageEventHandler mediante programación al evento PageIndexChanging de un control GridView.
<%@ 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>
El siguiente ejemplo muestra cómo agregar un delegado GridViewPageEventHandler mediante declaración al evento PageIndexChanging de un control GridView.
<%@ 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>
Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter
Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.
Nota: