To refresh this child table, you have open and close the parent node. Here is some code.
private void btnDeleteSelectedRow_Click(object sender, System.EventArgs e)
{
int rowIndex = gridDataBoundGrid1.CurrentCell.RowIndex;
GridBoundRecordState rs = gridDataBoundGrid1.Binder.GetRecordStateAtRowIndex(rowIndex);
if( rs.ListManager.Current is DataRowView )
{
DataRowView drv = (DataRowView)rs.ListManager.Current;
if( drv.Row is Dataset1.QuoteRow )
{
drv.Row.Delete();
//find parent and close & open it
int level = rs.LevelIndex;
if(level == 0)
gridDataBoundGrid1.Refresh();
else
{
int row = rowIndex - 1;
while (row > this.gridDataBoundGrid1.Model.Rows.HeaderCount)
{
rs = gridDataBoundGrid1.Binder.GetRecordStateAtRowIndex(row);
if(rs.LevelIndex < level)
{
this.gridDataBoundGrid1.BeginUpdate();
this.gridDataBoundGrid1.CollapseAtRowIndex(row);
this.gridDataBoundGrid1.ExpandAtRowIndex(row);
this.gridDataBoundGrid1.EndUpdate();
this.gridDataBoundGrid1.Refresh();
this.gridDataBoundGrid1.CurrentCell.MoveTo(rowIndex, 1);
break;
}
row--;
}
}
}
}
}
Here is a forum reference on how to add child rows to an empty child table.
http://www.syncfusion.com/Support/Forums/message.aspx?MessageID=13894
Here is a sample that shows hold you can insert/delete current rows at any level.
updateableexpandgrid631958659068073824.zip