Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
DetailsViewPageEventHandler, délégué
Représente la méthode qui gère l'événement PageIndexChanging d'un contrôle DetailsView.
Assembly : System.Web (dans System.Web.dll)
public delegate void DetailsViewPageEventHandler( Object sender, DetailsViewPageEventArgs e )
Paramètres
- sender
- Type : System.Object
Source de l'événement.
- e
- Type : System.Web.UI.WebControls.DetailsViewPageEventArgs
DetailsViewPageEventArgs qui contient les données d'événement.
Le contrôle DetailsView déclenche l'événement PageIndexChanging suite à un clic sur le bouton du pagineur (bouton dont la propriété CommandName a la valeur "Page"), mais avant que le contrôle DetailsView ne gère l'opération de pagination. Cela vous permet de fournir un gestionnaire d'événements qui exécute une routine personnalisée, par exemple l'annulation de l'opération de pagination, lorsque cet événement se produit.
Remarque
|
|---|
|
Les boutons du pagineur se trouvent habituellement sur la ligne du pagineur d'un contrôle DetailsView. |
Lorsque vous créez un délégué DetailsViewPageEventHandler, vous identifiez la méthode qui gérera l'événement. Pour associer l'événement à votre gestionnaire d'événements, ajoutez une instance du délégué à l'événement. Le gestionnaire d'événements est appelé chaque fois qu'un événement se produit, sauf si vous supprimez le délégué. Pour plus d'informations sur les délégués de gestionnaires d'événements, consultez Événements et délégués.
L'exemple de code suivant montre comment ajouter par programme un délégué DetailsViewPageEventHandler à l'événement PageIndexChanging d'un contrôle DetailsView.
<%@ 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 DetailsView object. DetailsView customerDetailsView = new DetailsView(); // Set the DetailsView object's properties. customerDetailsView.ID = "CustomerDetailsView"; customerDetailsView.DataSourceID = "DetailsViewSource"; customerDetailsView.AutoGenerateRows = true; customerDetailsView.AutoGenerateEditButton = true; customerDetailsView.AllowPaging = true; customerDetailsView.DataKeyNames = new String[1] { "CustomerID" }; customerDetailsView.PagerSettings.Position = PagerPosition.Bottom; // Programmatically register the event-handling methods // for the DetailsView control. customerDetailsView.PageIndexChanging += new DetailsViewPageEventHandler(this.CustomerDetailsView_PageIndexChanging); customerDetailsView.ModeChanging += new DetailsViewModeEventHandler(this.CustomerDetailsView_ModeChanging); // Add the DetailsView object to the Controls collection // of the PlaceHolder control. DetailsViewPlaceHolder.Controls.Add(customerDetailsView); } void CustomerDetailsView_PageIndexChanging(Object sender, DetailsViewPageEventArgs e) { // Use the sender parameter to access the DetailsView control // that raised the event. DetailsView customerDetailsView = (DetailsView)sender; // Cancel the paging operation if the DetailsView control // in edit mode. if (customerDetailsView.CurrentMode == DetailsViewMode.Edit) { e.Cancel = true; // Display an error message. int newPage = e.NewPageIndex + 1; MessageLabel.Text = "Please update the current record before to moving to page " + newPage.ToString() + "."; } } void CustomerDetailsView_ModeChanging(Object sender, DetailsViewModeEventArgs e) { // Clear the message label when the user changes mode. MessageLabel.Text = ""; } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>DetailsViewPageEventHandler Example</title> </head> <body> <form id="form1" runat="server"> <h3>DetailsViewPageEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated DetailsView control. --> <asp:placeholder id="DetailsViewPlaceHolder" runat="server"/> <br/><br/> <asp:label id="MessageLabel" forecolor="Red" 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="DetailsViewSource" 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>
L'exemple de code suivant montre comment ajouter de façon déclarative un délégué DetailsViewPageEventHandler à l'événement PageIndexChanging d'un contrôle DetailsView.
<%@ 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 CustomerDetailsView_PageIndexChanging(Object sender, DetailsViewPageEventArgs e) { // Cancel the paging operation if the DetailsView control // in edit mode. if (CustomerDetailsView.CurrentMode == DetailsViewMode.Edit) { e.Cancel = true; // Display an error message. int newPage = e.NewPageIndex + 1; MessageLabel.Text = "Please update the current record before to moving to page " + newPage.ToString() + "."; } } void CustomerDetailsView_ModeChanging(Object sender, DetailsViewModeEventArgs e) { // Clear the message label when the user changes mode. MessageLabel.Text = ""; } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>DetailsViewPageEventHandler Example</title> </head> <body> <form id="form1" runat="server"> <h3>DetailsViewPageEventHandler Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" autogeneraterows="true" autogenerateeditbutton="true" datakeynames="CustomerID" allowpaging="true" onpageindexchanging="CustomerDetailsView_PageIndexChanging" onmodechanging="CustomerDetailsView_ModeChanging" runat="server"> <pagersettings position="Bottom"/> </asp:detailsview> <br/> <asp:label id="MessageLabel" forecolor="Red" 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="DetailsViewSource" 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 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Remarque