EasyUI Treegrid - метод вставки не обновляет дочернюю коллекцию

Я использую jQuery EasyUI TreeGrid в проекте.

У меня есть дерево, загруженное с некоторыми начальными данными. После этого мне нужно вставить новые строки в дерево, когда пользователь нажимает кнопку "Добавить". Обработчик нажатия кнопки add имеет следующий код и работает примерно так, как ожидалось:

var row = $treeGrid.treegrid('getSelected');

if (row) {
    var obj = {
        id: "x" + ++maxId,
        code: "x" + maxId,
        amount: 2
    };
    $treeGrid.treegrid('insert', {
            after: row.id,
            data: obj
        });

    $("#txtResult").text("Added a new row: " + obj.id);
}

Однако впоследствии, когда я проверяю дочерние элементы строки (где был добавлен новый дочерний элемент), он не включает вновь добавленную строку.

Я настроил jsFiddle, чтобы продемонстрировать проблему. Чтобы воспроизвести это:

  1. Выберите строку на 2-м уровне и нажмите Добавить дочерний элемент. Новая строка будет добавлена ​​в соответствии с кодом выше. Сообщение "строка добавлена" отображается под кнопками.

  2. Выберите родителя и нажмите кнопку "Показать детей". Количество детей в выбранной строке отображается под кнопками.

После вставки строки я также попытался "acceptChanges" treegrid, но это все еще не решает проблему.

ОБНОВЛЕНИЕ: согласно ответу @saigitha-vijay, похоже, что использование метода добавления корректно обновляет базовую модель ( jsFiddle), однако всегда добавляет новую строку как последний дочерний элемент. Есть ли способ добавить новую строку в определенную позицию?

1 ответ

Вместо "вставить" используйте "добавить". В этом методе вы также можете передать родительский идентификатор.

пример,

$('#tt').treegrid('append',{
parent: node.id,  // the node has a 'id' value that defined through 'idField' property
data: [{
    id: '073',
    name: 'name73'
}]
});

я изменил ваш код как,(это работает)

 var obj = [{
            id: "x" + ++maxId,
            code: "x" + maxId,
            amount: 2
        }];

        $treeGrid.treegrid('append', {
            parent: row.id,
            data: obj
        });
Другие вопросы по тегам