ListObject.ErrorAddDataBoundRow Event (2007 System)
Updated: July 2008
Occurs when a user tries to add a row to a data-bound ListObject control, but the row cannot be added.
Assembly: Microsoft.Office.Tools.Excel.v9.0 (in Microsoft.Office.Tools.Excel.v9.0.dll)
This event is raised only if the ListObject control is bound to data.
Handle this event to attempt to correct possible errors.
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.
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.
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."); }
- 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.