This documentation is archived and is not being maintained.

ListObject.BeforeAddDataBoundRow Event

Occurs just before an attempt to add a new row to a ListObject control that is bound to data.

Namespace: Microsoft.Office.Tools.Excel
Assembly: Microsoft.Office.Tools.Excel (in

public event BeforeAddDataBoundRowEventHandler BeforeAddDataBoundRow

This event is raised only if the ListObject control is bound to data.

This event is raised only when a new row is added through the Microsoft Office Excel user interface. It is not raised when a new row is added programmatically.

Handle this event to perform additional validation, or to cancel addition of a row.

The following code example creates a DataTable and a ListObject, and binds the ListObject to the DataTable. It then creates a BeforeAddDataboundRow event handler. To test the event, manually add a new row to the ListObject on sheet 1. The event handler removes the row and displays a message.

private void ListObject_BeforeAddDataBoundRow()
    // Create a new DataSet and DataTable.
    DataSet ds = new DataSet();
    DataTable dt = ds.Tables.Add("Customers");
    dt.Columns.Add(new DataColumn("LastName"));
    dt.Columns.Add(new DataColumn("FirstName"));

    // Add a new row to the DataTable.
    DataRow dr = dt.NewRow();
    dr["LastName"] = "Chan";
    dr["FirstName"] = "Gareth";

    // Create a list object.
    Microsoft.Office.Tools.Excel.ListObject list1 = 
        this.Range["A1", missing], "list1");

    // Bind the list object to the DataTable.
    list1.AutoSetDataBoundColumnHeaders = true;
    list1.SetDataBinding(ds, "Customers", "LastName",

    // Create the event handler.
    list1.BeforeAddDataBoundRow += new 

void list1_BeforeAddDataBoundRow(object sender, 
    Microsoft.Office.Tools.Excel.BeforeAddDataBoundRowEventArgs e)
    e.Cancel = true;
    MessageBox.Show("This data is read-only.");