DetailsView.ModeChanged Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando un controllo DetailsView tenta di cambiare modalità alternandosi tra modifica, inserimento e sola lettura, ma dopo l'aggiornamento della proprietà CurrentMode.
public:
event EventHandler ^ ModeChanged;
public event EventHandler ModeChanged;
member this.ModeChanged : EventHandler
Public Custom Event ModeChanged As EventHandler
Tipo evento
Esempio
Nell'esempio di codice seguente viene illustrato come usare l'evento ModeChanged per visualizzare la modalità corrente nella riga di intestazione.
<%@ 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>
Commenti
L'evento ModeChanged viene generato quando un DetailsView controllo tenta di modificare tra modifica, inserimento e modalità di sola lettura, ma dopo l'aggiornamento della CurrentMode proprietà. Ciò consente di fornire un gestore eventi che esegue una routine personalizzata, ad esempio la sincronizzazione del DetailsView controllo con un altro controllo, ogni volta che si verifica questo evento.
Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.