ChangeReason, énumération
Fournit le motif pour lequel les données d'origine ont été restaurées dans un ListObject qui est lié aux données.
Espace de noms : Microsoft.Office.Tools.Excel
Assembly : Microsoft.Office.Tools.Excel (dans Microsoft.Office.Tools.Excel.dll)
Syntaxe
'Déclaration
Public Enumeration ChangeReason
public enum ChangeReason
Membres
Nom de membre | Description | |
---|---|---|
DataBoundColumnHeaderIsAutoSet | Lorsque la propriété AutoSetDataBoundColumnHeaders du contrôle ListObject a la valeur true, le contrôle ListObject ne permet pas à l'utilisateur de modifier les en-têtes de colonnes. | |
ErrorInCommit | La modification des données contenues dans le contrôle ListObject ne peut pas être validée dans la source de données à laquelle le contrôle est lié. | |
FixedLengthDataSource | La source de données à laquelle le contrôle ListObject est lié n'autorise pas l'ajout ou la suppression de lignes. | |
FixedNumberOfColumnsInDataBoundList | Le contrôle ListObject n'autorise pas l'ajout ou la suppression de colonnes après qu'il a été lié aux données. | |
Other | Les données d'origine ont été restaurées pour une raison non spécifiée par les autres valeurs ChangeReason. | |
ReadOnlyDataSource | La source de données à laquelle le contrôle ListObject est lié est en lecture seule. |
Notes
Lorsque ListObject est lié aux données et que l'utilisateur exécute une opération non autorisée, ListObject est restauré à son état antérieur et déclenche l'événement OriginalDataRestored.L'énumération ChangeReason fournit des informations sur le motif de cette restauration.
Exemples
L'exemple de code suivant crée un DataTable et un ListObject, et lie ListObject à DataTable.Il crée ensuite un gestionnaire d'événements OriginalDataRestored.Pour tester l'événement, cliquez avec le bouton droit sur une lettre de colonne au-dessus de ListObject sur la feuille 1, puis cliquez sur Supprimer dans le menu contextuel.Le gestionnaire d'événements remplace les données de colonne et d'en-tête de colonne et affiche un message indiquant le type de données restaurées et la raison de la restauration des données d'origine.
Cet exemple illustre une personnalisation au niveau du document.
WithEvents OriginalDataRestoredList As _
Microsoft.Office.Tools.Excel.ListObject
Private Sub ListObject_OriginalDataRestored()
' Create a new DataSet and DataTable.
Dim ds As New DataSet()
Dim dt As DataTable = ds.Tables.Add("Customers")
Dim lastName As New DataColumn("LastName")
dt.Columns.Add(lastName)
dt.Columns.Add(New DataColumn("FirstName"))
' Add two new rows to the DataTable.
Dim dr1 As DataRow = dt.NewRow()
dr1("LastName") = "Chan"
dr1("FirstName") = "Gareth"
dt.Rows.Add(dr1)
Dim dr2 As DataRow = dt.NewRow()
dr2("LastName") = "Nitsche"
dr2("FirstName") = "Sonja"
dt.Rows.Add(dr2)
' Create a list object.
OriginalDataRestoredList = Me.Controls.AddListObject( _
Me.Range("A1"), "OriginalDataRestoredList")
' Bind the list object to the DataTable.
OriginalDataRestoredList.AutoSetDataBoundColumnHeaders = True
OriginalDataRestoredList.SetDataBinding(ds, "Customers", _
"LastName", "FirstName")
End Sub
Private Sub List1_OriginalDataRestored(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Excel.OriginalDataRestoredEventArgs) _
Handles OriginalDataRestoredList.OriginalDataRestored
MessageBox.Show("This data is bound to a data source and " & _
"will be restored. This change is: " & e.ChangeType.ToString() & _
". The reason is: " & e.ChangeReason.ToString() + ".")
End Sub
private void ListObject_OriginalDataRestored()
{
// Create a new DataSet and DataTable.
DataSet ds = new DataSet();
DataTable dt = ds.Tables.Add("Customers");
DataColumn lastName = new DataColumn("LastName");
dt.Columns.Add(lastName);
dt.Columns.Add(new DataColumn("FirstName"));
// Add two new rows to the DataTable.
DataRow dr1 = dt.NewRow();
dr1["LastName"] = "Chan";
dr1["FirstName"] = "Gareth";
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["LastName"] = "Nitsche";
dr2["FirstName"] = "Sonja";
dt.Rows.Add(dr2);
// Create a list object.
Microsoft.Office.Tools.Excel.ListObject list1 =
this.Controls.AddListObject(
this.Range["A1"], "list1");
// Bind the list object to the DataTable.
list1.AutoSetDataBoundColumnHeaders = true;
list1.SetDataBinding(ds, "Customers", "LastName",
"FirstName");
// Create the event handler.
list1.OriginalDataRestored += new
Microsoft.Office.Tools.Excel.
OriginalDataRestoredEventHandler(list1_OriginalDataRestored);
}
void list1_OriginalDataRestored(object sender,
Microsoft.Office.Tools.Excel.OriginalDataRestoredEventArgs e)
{
MessageBox.Show("This data is bound to a data source and " +
"will be restored. This change is: " + e.ChangeType.ToString() +
". The reason is: " + e.ChangeReason.ToString() + ".");
}