ListObject.ErrorAddDataBoundRow Event (2007 System)
Occurs when a user tries to add a row to a data-bound ListObject control, but the row cannot be added.
Namespace: Microsoft.Office.Tools.Excel
Assembly: Microsoft.Office.Tools.Excel.v9.0 (in Microsoft.Office.Tools.Excel.v9.0.dll)
Syntax
'Declaration
Public Event ErrorAddDataBoundRow As ErrorAddDataBoundRowEventHandler
'Usage
Dim instance As ListObject
Dim handler As ErrorAddDataBoundRowEventHandler
AddHandler instance.ErrorAddDataBoundRow, handler
public event ErrorAddDataBoundRowEventHandler ErrorAddDataBoundRow
public:
event ErrorAddDataBoundRowEventHandler^ ErrorAddDataBoundRow {
void add (ErrorAddDataBoundRowEventHandler^ value);
void remove (ErrorAddDataBoundRowEventHandler^ value);
}
JScript does not support events.
Remarks
This event is raised only if the ListObject control is bound to data.
Handle this event to attempt to correct possible errors.
Examples
The following code example creates a DataTable and a ListObject, and binds the ListObject to the DataTable. It then creates an ErrorAddDataboundRow event handler. To test the event, manually add a new row to the ListObject and enter the last name "Chan" and a first name. The event handler displays a message.
This version is for a document-level customization.
WithEvents ErrorAddDataBoundRowList As _
Microsoft.Office.Tools.Excel.ListObject
Private Sub ListObject_ErrorAddDataBoundRow()
' 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"))
Dim myUC As New UniqueConstraint("CustConstraint", _
lastName)
dt.Constraints.Add(myUC)
' Add a new row to the DataTable.
Dim dr As DataRow = dt.NewRow()
dr("LastName") = "Chan"
dr("FirstName") = "Gareth"
dt.Rows.Add(dr)
' Create a list object.
ErrorAddDataBoundRowList = _
Me.Controls.AddListObject(Me.Range("A1"), _
"ErrorAddDataBoundRowList")
' Bind the list object to the DataTable.
ErrorAddDataBoundRowList.AutoSetDataBoundColumnHeaders = True
ErrorAddDataBoundRowList.SetDataBinding(ds, "Customers", _
"LastName", "FirstName")
End Sub
Private Sub List1_ErrorAddDataBoundRow(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Excel.ErrorAddDataBoundRowEventArgs) _
Handles ErrorAddDataBoundRowList.ErrorAddDataBoundRow
MessageBox.Show("Last names must be unique.")
End Sub
private void ListObject_ErrorAddDataBoundRow()
{
// 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"));
UniqueConstraint myUC = new UniqueConstraint( "CustConstraint",
lastName);
dt.Constraints.Add(myUC);
// Add a new row to the DataTable.
DataRow dr = dt.NewRow();
dr["LastName"] = "Chan";
dr["FirstName"] = "Gareth";
dt.Rows.Add(dr);
// 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.ErrorAddDataBoundRow += new
Microsoft.Office.Tools.Excel.
ErrorAddDataBoundRowEventHandler(list1_ErrorAddDataBoundRow);
}
void list1_ErrorAddDataBoundRow(object sender,
Microsoft.Office.Tools.Excel.ErrorAddDataBoundRowEventArgs e)
{
MessageBox.Show("Last names must be unique.");
}
This version is for an application-level add-in. To use this code example, add the using System.Data; directive if you are using C# or the Imports System.Data statement if you are using Visual Basic.
WithEvents ErrorAddDataBoundRowList As ListObject
Private Sub ListObject_ErrorAddDataBoundRow()
' 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"))
Dim myUC As New UniqueConstraint("CustConstraint", _
lastName)
dt.Constraints.Add(myUC)
' Add a new row to the DataTable.
Dim dr As DataRow = dt.NewRow()
dr("LastName") = "Chan"
dr("FirstName") = "Gareth"
dt.Rows.Add(dr)
' Create a list object.
Dim vstoWorksheet As Worksheet = CType( _
Me.Application.ActiveWorkbook.Worksheets(1), _
Excel.Worksheet).GetVstoObject()
ErrorAddDataBoundRowList = _
vstoWorksheet.Controls.AddListObject(vstoWorksheet.Range("A1"), _
"ErrorAddDataBoundRowList")
' Bind the list object to the DataTable.
ErrorAddDataBoundRowList.AutoSetDataBoundColumnHeaders = True
ErrorAddDataBoundRowList.SetDataBinding(ds, "Customers", _
"LastName", "FirstName")
End Sub
Private Sub List1_ErrorAddDataBoundRow(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Excel.ErrorAddDataBoundRowEventArgs) _
Handles ErrorAddDataBoundRowList.ErrorAddDataBoundRow
System.Windows.Forms.MessageBox.Show("Last names must be unique.")
End Sub
private void ListObject_ErrorAddDataBoundRow()
{
// 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"));
UniqueConstraint myUC = new UniqueConstraint("CustConstraint",
lastName);
dt.Constraints.Add(myUC);
// Add a new row to the DataTable.
DataRow dr = dt.NewRow();
dr["LastName"] = "Chan";
dr["FirstName"] = "Gareth";
dt.Rows.Add(dr);
// Create a list object.
Worksheet vstoWorksheet = ((Excel.Worksheet)
this.Application.ActiveWorkbook.Worksheets[1]).GetVstoObject();
ListObject list1 =
vstoWorksheet.Controls.AddListObject(
vstoWorksheet.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.ErrorAddDataBoundRow += new
ErrorAddDataBoundRowEventHandler(list1_ErrorAddDataBoundRow);
}
void list1_ErrorAddDataBoundRow(object sender,
Microsoft.Office.Tools.Excel.ErrorAddDataBoundRowEventArgs e)
{
System.Windows.Forms.MessageBox.Show("Last names must be unique.");
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
See Also
Reference
Microsoft.Office.Tools.Excel Namespace
Change History
Date |
History |
Reason |
---|---|---|
July 2008 |
Added a version of the code example for an application-level add-in. |
SP1 feature change. |