DetailsViewModeEventArgs.CancelingEdit Proprietà
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.
Ottiene un valore che indica se l'evento ModeChanging è stato generato come risultato dell'annullamento da parte dell'utente di un'operazione di modifica.
public:
property bool CancelingEdit { bool get(); };
public bool CancelingEdit { get; }
member this.CancelingEdit : bool
Public ReadOnly Property CancelingEdit As Boolean
Valore della proprietà
true
per indicare che l'evento ModeChanging è stato generato come risultato dell'annullamento da parte dell'utente di un'operazione di modifica, altrimenti false
.
Esempio
Nell'esempio di codice seguente viene illustrato come usare la CancelingEdit proprietà per determinare se una modifica della modalità è il risultato dell'annullamento di un'operazione di modifica.
<%@ 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>DetailsViewModeEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewModeEventArgs 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>
<%@ Page language="VB" autoeventwireup="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub CustomerDetailsView_ModeChanging(ByVal sender As Object, ByVal e As DetailsViewModeEventArgs) Handles CustomerDetailsView.ModeChanging
' Use the NewMode property to determine the mode to which the
' DetailsView control is transitioning.
Select Case e.NewMode
Case DetailsViewMode.Edit
' Hide the pager row and clear the Label control
' when transitioning to edit mode.
CustomerDetailsView.AllowPaging = False
MessageLabel.Text = ""
Case DetailsViewMode.ReadOnly
' Display the pager row and confirmation message
' when transitioning to edit mode.
CustomerDetailsView.AllowPaging = True
If e.CancelingEdit Then
MessageLabel.Text = "Update canceled."
Else
MessageLabel.Text = "Update completed."
End If
Case DetailsViewMode.Insert
' Cancel the mode change if the DetailsView
' control attempts to transition to insert
' mode.
e.Cancel = True
Case Else
MessageLabel.Text = "Unsupported mode."
End Select
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsViewModeEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewModeEventArgs Example</h3>
<asp:detailsview id="CustomerDetailsView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogeneraterows="true"
autogenerateeditbutton="true"
allowpaging="true"
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>
Commenti
L'evento ModeChanging viene generato quando un DetailsView controllo tenta di modificare tra modifica, inserimento e modalità di sola lettura, ma prima che la modalità cambi effettivamente. Utilizzare la CancelingEdit proprietà per determinare se l'evento ModeChanging è stato generato in seguito all'annullamento di un'operazione di modifica. Ad esempio, è possibile reimpostare il controllo ogni volta che l'utente DetailsView annulla un'operazione di modifica.