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를 만들고 DataTable에 ListObject를 바인딩합니다. 그런 다음 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() + ".");
}