Share via


ChangeReason-Enumeration

Liefert den Grund für die Wiederherstellung der Originaldaten in einem ListObject, das an Daten gebunden ist.

Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel (in Microsoft.Office.Tools.Excel.dll)

Syntax

'Declaration
Public Enumeration ChangeReason
public enum ChangeReason

Member

Membername Beschreibung
ReadOnlyDataSource Die Datenquelle, an die das ListObject-Steuerelement gebunden ist, ist schreibgeschützt.
FixedLengthDataSource Das Hinzufügen oder Entfernen von Zeilen wird durch die Datenquelle, an die das ListObject-Steuerelement gebunden ist, unterbunden.
FixedNumberOfColumnsInDataBoundList Nachdem es an Daten gebunden wurde, unterbindet das ListObject-Steuerelement das Hinzufügen und Entfernen von Spalten.
DataBoundColumnHeaderIsAutoSet Wenn die AutoSetDataBoundColumnHeaders-Eigenschaft des ListObject-Steuerelements auf true festgelegt ist, lässt das ListObject-Steuerelement nicht zu, dass der Benutzer die Spaltenheader ändert.
ErrorInCommit Eine Änderung der Daten im ListObject-Steuerelement konnte nicht in die an das Steuerelement gebundene Datenquelle übernommen werden.
Other Die ursprünglichen Daten wurden wiederhergestellt, da ein Änderungsgrund in keinem der anderen ChangeReason-Werte angegeben war.

Hinweise

Wenn das ListObject an Daten gebunden ist und der Benutzer einen unzulässigen Vorgang ausführt, stellt das ListObject selbst seinen vorherigen Zustand wieder her und löst das OriginalDataRestored-Ereignis aus. Die ChangeReason-Enumeration stellt Informationen zum Grund der Wiederherstellung bereit.

Beispiele

Im folgenden Codebeispiel werden eine DataTable und ein ListObject erstellt, und das ListObject wird an die DataTable gebunden. Anschließend wird ein OriginalDataRestored-Ereignishandler erstellt. Klicken Sie zum Testen des Ereignisses mit der rechten Maustaste auf einen Spaltenbuchstaben über dem ListObject auf Blatt 1 und im daraufhin geöffneten Kontextmenü auf Löschen. Der Ereignishandler ersetzt die Daten in der Spalte und im Spaltenheader und gibt eine Meldung aus, die die Art der wiederhergestellten Daten und den Grund für die Wiederherstellung der ursprünglichen Daten angibt.

Dieses Beispiel bezieht sich auf eine Anpassung auf Dokumentebene.

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

Siehe auch

Referenz

Microsoft.Office.Tools.Excel-Namespace