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
|
DetailsViewModeEventHandler, délégué
Représente la méthode qui gère l'événement ModeChanging d'un contrôle DetailsView.
Assembly : System.Web (dans System.Web.dll)
public delegate void DetailsViewModeEventHandler( Object sender, DetailsViewModeEventArgs e )
Paramètres
- sender
- Type : System.Object
Source de l'événement.
- e
- Type : System.Web.UI.WebControls.DetailsViewModeEventArgs
DetailsViewModeEventArgs qui contient les données d'événement.
L'événement ModeChanging est déclenché lorsqu'un contrôle DetailsView tente de basculer entre les modes édition, insertion et lecture seule, mais avant que le mode ne change réellement. Cela vous permet de fournir un gestionnaire d'événements qui exécute une routine personnalisée, par exemple la configuration du contrôle DetailsView pour un mode spécifique ou l'annulation du changement de mode, lorsque cet événement se produit.
Lorsque vous créez un délégué DetailsViewModeEventHandler, 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é DetailsViewModeEventHandler à l'événement ModeChanging 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" }; // Programmatically register the event-handling method // for the ItemInserted event of a DetailsView control. 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_ModeChanging(Object sender, DetailsViewModeEventArgs e) { // Use the sender parameter to access the DetailsView // control that raised the event. DetailsView customerDetailsView = (DetailsView)sender; // Use the NewMode property to determine the mode to which the // DetailsView control is transitioning. switch (e.NewMode) { case DetailsViewMode.Edit: // Hide the pager row and clear the Label control // when transitioning to edit mode. customerDetailsView.AllowPaging = false; MessageLabel.Text = ""; break; case DetailsViewMode.ReadOnly: // Display the pager row and confirmation message // when transitioning to edit mode. customerDetailsView.AllowPaging = true; if (e.CancelingEdit) { MessageLabel.Text = "Update canceled."; } else { MessageLabel.Text = "Update completed."; } break; case DetailsViewMode.Insert: // Cancel the mode change if the DetailsView // control attempts to transition to insert // mode. e.Cancel = true; break; default: MessageLabel.Text = "Unsupported mode."; break; } } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>DetailsViewModeEventHandler Example</title> </head> <body> <form id="form1" runat="server"> <h3>DetailsViewModeEventHandler 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é DetailsViewModeEventHandler à l'événement ModeChanging 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_ModeChanging(Object sender, DetailsViewModeEventArgs e) { // Use the NewMode property to determine the mode to which the // DetailsView control is transitioning. switch (e.NewMode) { case DetailsViewMode.Edit: // Hide the pager row and clear the Label control // when transitioning to edit mode. CustomerDetailsView.AllowPaging = false; MessageLabel.Text = ""; break; case DetailsViewMode.ReadOnly: // Display the pager row and confirmation message // when transitioning to edit mode. CustomerDetailsView.AllowPaging = true; if (e.CancelingEdit) { MessageLabel.Text = "Update canceled."; } else { MessageLabel.Text = "Update completed."; } break; case DetailsViewMode.Insert: // Cancel the mode change if the DetailsView // control attempts to transition to insert // mode. e.Cancel = true; break; default: MessageLabel.Text = "Unsupported mode."; break; } } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>DetailsViewModeEventHandler Example</title> </head> <body> <form id="form1" runat="server"> <h3>DetailsViewModeEventHandler Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" datakeynames="CustomerID" autogeneraterows="true" autogenerateeditbutton="true" allowpaging="true" onmodechanging="CustomerDetailsView_ModeChanging" runat="server"> </asp:detailsview> <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>
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.