ChangeReason (Enumeración)
Proporciona la razón por la que los datos originales se restauraron en un control ListObject enlazado a datos.
Espacio de nombres: Microsoft.Office.Tools.Excel
Ensamblado: Microsoft.Office.Tools.Excel (en Microsoft.Office.Tools.Excel.dll)
Sintaxis
'Declaración
Public Enumeration ChangeReason
public enum ChangeReason
Miembros
Nombre de miembro | Descripción | |
---|---|---|
DataBoundColumnHeaderIsAutoSet | Cuando la propiedad AutoSetDataBoundColumnHeaders del control ListObject se establece en true, el control ListObject no permite al usuario cambiar los encabezados de columna. | |
ErrorInCommit | Un cambio en los datos del control ListObject no se pudo confirmar en el origen de datos con el que está enlazado el control. | |
FixedLengthDataSource | El origen de datos al que se enlaza el control ListObject no permite agregar ni quitar filas. | |
FixedNumberOfColumnsInDataBoundList | El control ListObject no permite agregar ni quitar columnas una vez enlazado a datos. | |
Other | Los datos originales se restauraron debido a una razón no especificada mediante ninguno de los otros valores de ChangeReason. | |
ReadOnlyDataSource | El origen de datos al que se enlaza el control ListObject es de sólo lectura. |
Comentarios
Cuando el control ListObject se enlaza a datos y el usuario realiza una operación que no se permite, el control ListObject se restaura a su estado anterior y provoca el evento OriginalDataRestored.La enumeración ChangeReason proporciona información sobre la razón de esta restauración.
Ejemplos
El ejemplo de código siguiente crea DataTable y ListObject, y enlaza el control ListObject al control DataTable.A continuación, crea un controlador de eventos OriginalDataRestored.Para probar el evento, haga clic con el botón secundario en una letra de columna sobre el control ListObject en la hoja 1 y, a continuación, haga clic en Eliminar en el menú contextual.El controlador de eventos reemplaza los datos del encabezado de columna y de la columna, y muestra un mensaje en el que indica qué tipo de datos se han restaurado y la razón por la que se han restaurado los datos originales.
Se trata de un ejemplo para una personalización en el nivel del documento.
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() + ".");
}