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
ReadOnlyDataSource El origen de datos al que se enlaza el control ListObject es de sólo lectura.
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.
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.
Other Los datos originales se restauraron debido a una razón no especificada mediante ninguno de los otros valores de ChangeReason.

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", missing], "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() + ".");
}

Vea también

Referencia

Microsoft.Office.Tools.Excel (Espacio de nombres)