DetailsView.ModeChanged Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit lorsqu'un contrôle DetailsView tente de basculer entre les modes édition, insertion et lecture seule, mais après la mise à jour de la propriété CurrentMode.
public:
event EventHandler ^ ModeChanged;
public event EventHandler ModeChanged;
member this.ModeChanged : EventHandler
Public Custom Event ModeChanged As EventHandler
Type d'événement
Exemples
L’exemple de code suivant montre comment utiliser l’événement ModeChanged pour afficher le mode actuel dans la ligne d’en-tête.
<%@ 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 CustomerDetailView_ModeChanged(Object sender, EventArgs e)
{
// Display the current mode in the header row.
switch (CustomerDetailView.CurrentMode)
{
case DetailsViewMode.Edit:
CustomerDetailView.HeaderText = "Edit Mode";
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Red;
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.LightGray;
break;
case DetailsViewMode.Insert:
CustomerDetailView.HeaderText = "Insert Mode";
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Green;
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.Yellow;
break;
case DetailsViewMode.ReadOnly:
CustomerDetailView.HeaderText = "Read-Only Mode";
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Blue;
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.White;
break;
default:
CustomerDetailView.HeaderText = "Error!";
break;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView ModeChanged Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView ModeChanged Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogeneraterows="true"
autogenerateeditbutton="true"
autogenerateinsertbutton="true"
allowpaging="true"
headertext="Read-Only Mode"
onmodechanged="CustomerDetailView_ModeChanged"
runat="server">
<fieldheaderstyle backcolor="Navy"
forecolor="White"/>
<headerstyle forecolor="Blue"/>
</asp:detailsview>
<!-- 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" runat="server"
ConnectionString=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
SelectCommand="Select [CustomerID], [CompanyName],
[Address], [City], [PostalCode], [Country] From
[Customers]">
</asp:SqlDataSource>
</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 CustomerDetailView_ModeChanged(ByVal sender As Object, ByVal e As EventArgs)
' Display the current mode in the header row.
Select Case CustomerDetailView.CurrentMode
Case DetailsViewMode.Edit
CustomerDetailView.HeaderText = "Edit Mode"
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Red
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.LightGray
Case DetailsViewMode.Insert
CustomerDetailView.HeaderText = "Insert Mode"
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Green
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.Yellow
Case DetailsViewMode.ReadOnly
CustomerDetailView.HeaderText = "Read-Only Mode"
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Blue
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.White
Case Else
CustomerDetailView.HeaderText = "Error!"
End Select
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView ModeChanged Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView ModeChanged Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogeneraterows="true"
autogenerateeditbutton="true"
autogenerateinsertbutton="true"
allowpaging="true"
headertext="Read-Only Mode"
onmodechanged="CustomerDetailView_ModeChanged"
runat="server">
<fieldheaderstyle backcolor="Navy"
forecolor="White"/>
<headerstyle forecolor="Blue"/>
</asp:detailsview>
<!-- 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" runat="server"
ConnectionString=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
SelectCommand="Select [CustomerID], [CompanyName],
[Address], [City], [PostalCode], [Country] From
[Customers]">
</asp:SqlDataSource>
</form>
</body>
</html>
Remarques
L’événement ModeChanged est déclenché lorsqu’un DetailsView contrôle tente de passer du mode de modification, d’insertion et de lecture seule, mais après la mise à jour de la CurrentMode propriété. Cela vous permet de fournir un gestionnaire d’événements qui effectue une routine personnalisée, comme la synchronisation du DetailsView contrôle avec un autre contrôle, chaque fois que cet événement se produit.
Pour plus d’informations sur la façon de gérer les événements, consultez gestion et déclenchement d’événements.