Condividi tramite


Enumerazione ChangeReason

Fornisce il motivo del ripristino dei dati originali in un controllo ListObject associato ai dati.

Spazio dei nomi:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel (in Microsoft.Office.Tools.Excel.dll)

Sintassi

'Dichiarazione
Public Enumeration ChangeReason
public enum ChangeReason

Membri

Nome membro Descrizione
ReadOnlyDataSource L'origine dati cui è associato il controllo ListObject è di sola lettura.
FixedLengthDataSource L'origine dati cui è associato il controllo ListObject non consente l'aggiunta o la rimozione di righe.
FixedNumberOfColumnsInDataBoundList Il controllo ListObject non consente l'aggiunta o la rimozione di colonne dopo l'associazione ai dati.
DataBoundColumnHeaderIsAutoSet Quando la proprietà AutoSetDataBoundColumnHeaders del controllo ListObject è impostata su true, il controllo ListObject non consente la modifica delle intestazioni di colonna.
ErrorInCommit Non è stato possibile eseguire il commit di una modifica dei dati del controllo ListObject nell'origine dati a cui è associato il controllo.
Other I dati originali sono stati ripristinati per una ragione non specificata da nessuno degli altri valori ChangeReason.

Note

Quando un controllo ListObject è associato a dati e l'utente esegue un'operazione non consentita, viene ripristinato lo stato originale del controllo ListObject e viene generato l'evento OriginalDataRestored. L'enumerazione ChangeReason fornisce informazioni sul motivo del ripristino.

Esempi

Nell'esempio di codice riportato di seguito viene creato un oggetto DataTable e un controllo ListObject, quindi viene eseguita l'associazione tra il controllo ListObject e l'oggetto DataTable. Viene infine creato un gestore per l'evento OriginalDataRestored. Per eseguire il test dell'evento, fare clic con il pulsante destro del mouse su una lettera di colonna sopra l'oggetto ListObject nel foglio 1, quindi scegliere Elimina dal menu di scelta rapida. Il gestore eventi sostituisce i dati relativi alla colonna e all'intestazione di colonna e visualizza un messaggio in cui è indicato il tipo di dati ripristinati e il motivo del ripristino dei dati originali.

Questo esempio è valido per una personalizzazione a livello di 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() + ".");
}

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.Office.Tools.Excel