ChangeReason 枚举
提供将原始数据还原到绑定到数据的 ListObject 的原因。
命名空间: Microsoft.Office.Tools.Excel
程序集: Microsoft.Office.Tools.Excel(在 Microsoft.Office.Tools.Excel.dll 中)
语法
声明
Public Enumeration ChangeReason
public enum ChangeReason
成员
成员名称 | 说明 | |
---|---|---|
ReadOnlyDataSource | ListObject 控件所绑定到的数据源是只读的。 | |
FixedLengthDataSource | ListObject 控件所绑定到的数据源不允许添加或移除行。 | |
FixedNumberOfColumnsInDataBoundList | ListObject 控件在绑定到数据后不允许添加或移除列。 | |
DataBoundColumnHeaderIsAutoSet | 当 ListObject 控件的 AutoSetDataBoundColumnHeaders 属性设置为 true 时,ListObject 控件不允许用户更改列标题。 | |
ErrorInCommit | ListObject 控件中数据的更改未能提交到该控件所绑定到的数据源。 | |
Other | 原始数据因任何其他 ChangeReason 值未指定的原因而还原。 |
备注
当 ListObject 绑定到数据并且用户执行不被允许的操作时,ListObject 将自身还原为之前的状态,并引发 OriginalDataRestored 事件。 ChangeReason 枚举提供关于发生此还原的原因的信息。
示例
下面的代码示例创建一个 DataTable 和一个 ListObject,并将该 ListObject 绑定到该 DataTable。 然后创建一个 OriginalDataRestored 事件处理程序。 若要测试此事件,请在工作表 1 上右击 ListObject 上方的列字母,然后在快捷菜单中单击**“删除”**。 此事件处理程序替换列和列标题数据并显示一条消息,指示还原了哪种数据以及还原原始数据的原因。
此示例针对的是文档级自定义项。
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() + ".");
}