Решение, которое я использовал, - добавить новые объекты строк в копию массива _children родительской строки, а затем отправить обновление в родительскую строку.Для этого вам нужно найти родительскую строку, получить ее данные (которая будет включать в себя массив дочерних строк _children), добавить новую строку данных в _children и обновить данные родительской строки в таблице данных.
$("#add-child-row").click(function(){
//Get values for child row form fields
var childFields = $("#child-form").serializeArray().reduce(function(obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
var newRow = {
name: childFields.name,
location: childFields.location,
gender: childFields.gender,
col: childFields.color,
dob: childFields.dob,
};
//Find row to add child
//searchRows() returns array
//In my case, I am only expecting one matching row so use index 0
var parentRow = table.searchRows("name","=","Oli Bob");
//Get data for the parent row so we can update it's _children array
var tempParentRowData = parentRow[0].getData();
//Add new row to children array
tempParentRowData._children.push(newRow);
//Update data table row with new children array
parentRow[0].update({_children:tempParentRowData._children});
});
Я не знаю, насколько хорошо это будет работать, если вы ожидаете иметь огромное количество дочерних строк.Если есть что-то с вышеперечисленным решением или лучшим решением, я бы с удовольствием это увидел.