DetailsViewUpdatedEventArgs Classe
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.
Fournit des données pour l'événement ItemUpdated.
public ref class DetailsViewUpdatedEventArgs : EventArgs
public class DetailsViewUpdatedEventArgs : EventArgs
type DetailsViewUpdatedEventArgs = class
inherit EventArgs
Public Class DetailsViewUpdatedEventArgs
Inherits EventArgs
- Héritage
Exemples
L’exemple de code suivant montre comment utiliser l’objet DetailsViewUpdatedEventArgs passé au gestionnaire d’événements pour l’événement ItemUpdated afin de déterminer si une exception s’est produite pendant une opération de mise à jour.
<%@ 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_ItemUpdated(Object sender,
DetailsViewUpdatedEventArgs e)
{
// Use the Exception property to determine whether an exception
// occurred during the insert operation.
if (e.Exception == null)
{
// Use the Values property to get the value entered by
// the user for the CompanyName field.
String keyFieldValue = e.Keys["CustomerID"].ToString();
// Display a confirmation message.
MessageLabel.Text = "Record " + keyFieldValue +
" updated successfully. ";
// Display the old and new values.
DisplayValues(e);
if (e.AffectedRows == 1)
{
MessageLabel.Text += e.AffectedRows.ToString() +
" record updated.";
}
else
{
MessageLabel.Text += e.AffectedRows.ToString() +
" records updated.";
}
}
else
{
// Insert the code to handle the exception.
MessageLabel.Text = e.Exception.Message;
// Use the ExceptionHandled property to indicate that the
// exception is already handled.
e.ExceptionHandled = true;
// When an exception occurs, keep the DetailsView
// control in edit mode.
e.KeepInEditMode = true;
}
}
void DisplayValues(DetailsViewUpdatedEventArgs e)
{
MessageLabel.Text += "<br/></br>";
// Iterate through the OldValue and NewValues
// properties and display the values.
for (int i = 0; i < e.OldValues.Count; i++)
{
MessageLabel.Text += "Old Value=" + e.OldValues[i].ToString() +
", New Value=" + e.NewValues[i].ToString() + "<br/>";
}
MessageLabel.Text += "</br>";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsViewUpdatedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewUpdatedEventArgs Example</h3>
<asp:detailsview id="CustomerDetailsView"
datasourceid="DetailsViewSource"
autogeneraterows="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onitemupdated="CustomerDetailsView_ItemUpdated"
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>
<%@ 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 CustomerDetailsView_ItemUpdated(ByVal sender As Object, ByVal e As DetailsViewUpdatedEventArgs)
' Use the Exception property to determine whether an exception
' occurred during the insert operation.
If e.Exception Is Nothing Then
' Use the Values property to get the value entered by
' the user for the CompanyName field.
Dim keyFieldValue As String = e.Keys("CustomerID").ToString()
' Display a confirmation message.
MessageLabel.Text = "Record " & keyFieldValue & _
" updated successfully. "
' Display the old and new values.
DisplayValues(e)
If e.AffectedRows = 1 Then
MessageLabel.Text &= e.AffectedRows.ToString() & _
" record updated."
Else
MessageLabel.Text &= e.AffectedRows.ToString() & _
" records updated."
End If
Else
' Insert the code to handle the exception.
MessageLabel.Text = e.Exception.Message
' Use the ExceptionHandled property to indicate that the
' exception is already handled.
e.ExceptionHandled = True
' When an exception occurs, keep the DetailsView
' control in edit mode.
e.KeepInEditMode = True
End If
End Sub
Sub DisplayValues(ByVal e As DetailsViewUpdatedEventArgs)
MessageLabel.Text &= "<br/></br>"
' Iterate through the OldValue and NewValues
' properties and display the values.
Dim i As Integer
For i = 0 To e.OldValues.Count - 1
MessageLabel.Text &= "Old Value=" & e.OldValues(i).ToString() & _
", New Value=" & e.NewValues(i).ToString() & "<br/>"
Next
MessageLabel.Text &= "</br>"
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsViewUpdatedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewUpdatedEventArgs Example</h3>
<asp:detailsview id="CustomerDetailsView"
datasourceid="DetailsViewSource"
autogeneraterows="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onitemupdated="CustomerDetailsView_ItemUpdated"
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>
Remarques
Le DetailsView contrôle déclenche l’événement ItemUpdated lorsqu’un bouton Mettre à jour (un bouton dont CommandName
la propriété est définie sur « Mettre à jour ») dans le contrôle est cliqué, mais après que le DetailsView contrôle a mis à jour l’enregistrement. Cela vous permet de fournir un gestionnaire d’événements qui effectue une routine personnalisée, comme la vérification des résultats d’une opération de mise à jour, chaque fois que cet événement se produit.
Un DetailsViewUpdatedEventArgs objet est passé au gestionnaire d’événements, ce qui vous permet de déterminer le nombre d’enregistrements affectés et les exceptions qui ont pu se produire. Pour déterminer le nombre d’enregistrements affectés par l’opération de mise à jour, utilisez la AffectedRows propriété . Utilisez la Exception propriété pour déterminer si des exceptions se sont produites. Vous pouvez également indiquer si l’exception a été gérée dans le gestionnaire d’événements en définissant la ExceptionHandled propriété . Si vous devez accéder aux valeurs de champ de clé pour l’enregistrement mis à jour, utilisez la Keys propriété . Les valeurs de champ non clé d’origine et mises à jour sont accessibles à l’aide des OldValues propriétés et NewValues , respectivement.
Par défaut, le DetailsView contrôle retourne au mode spécifié par la DefaultMode propriété après une opération de mise à jour. Pour conserver le DetailsView contrôle en mode édition, définissez la propriété sur KeepInEditModetrue
.
Pour plus d’informations sur la façon de gérer les événements, consultez gestion et déclenchement d’événements.
Pour obtenir la liste des valeurs de propriété initiales d'une instance de la classe DetailsViewUpdatedEventArgs, consultez le constructeur DetailsViewUpdatedEventArgs.
Constructeurs
DetailsViewUpdatedEventArgs(Int32, Exception) |
Initialise une nouvelle instance de la classe DetailsViewUpdatedEventArgs. |
Propriétés
AffectedRows |
Obtient le nombre de lignes affectées par l'opération de mise à jour. |
Exception |
Obtient l'exception (s'il y en a une) qui a été levée pendant l'opération de mise à jour. |
ExceptionHandled |
Obtient ou définit une valeur indiquant si une exception levée pendant l'opération de mise à jour a été gérée dans le gestionnaire d'événements. |
KeepInEditMode |
Obtient ou définit une valeur indiquant si le contrôle DetailsView doit rester en mode édition après une opération de mise à jour. |
Keys |
Obtient un dictionnaire qui contient les paires nom-valeur du champ clé pour l'enregistrement mis à jour. |
NewValues |
Obtient un dictionnaire qui contient les nouvelles paires nom-valeur du champ pour l'enregistrement mis à jour. |
OldValues |
Obtient un dictionnaire qui contient les paires nom-valeur de champ d'origine pour l'enregistrement mis à jour. |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |