Obtendo dados atuais do KendoUI TreeView

Estou usando uma árvore de interface do usuário do kendo com uma fonte de dados remota de um arquivo JSON. Eu tenho um botão na página da árvore que recebe os dados atuais da árvore, envia-os através de um POST para um servidor e o servidor salva os dados atuais no arquivo JSON para que da próxima vez que eu recarregar a página, as alterações que fiz será mantido. É o que eu quero que aconteça.

Então eu sei que os dados atuais da árvore estão em:

$("#treeview").data("kendoTreeView").dataSource.data()

O que significa que os dados mudam em tempo real, por exemplo, quando alguém arrasta e solta um nó da árvore.

Meu problema começa quando esses dados não parecem mudar quando eu arrasto e solto nós dentro da árvore, e só muda quando eu arrasto e solto um nó no nível da raiz da árvore e mesmo assim ele não é feito corretamente o nó também deve ser movido para lá, mas o nó é copiado, deixando o nó passado na árvore também ...

Por exemplo eu tenho esta árvore:

Se eu fizer um arrastar e soltar mude assim:

E eu envio os dados, salve e recarregue a alteração não é feita a todos!

PS: Mesmo quando vejo os dados atuais após a alteração antes de enviá-los, vejo que não há alteração nos dados, mesmo que eu tenha mudado visualmente com um arrastar e soltar.Então, não tem a ver com o envio, salvando e o servidor.

Por outro lado, se eu fizer uma mudança assim:

Eu posso ver nos dados atuais que o nó movido é adicionado no final dos dados de fato, mas não é excluído de sua posição inicial dentro dos dados! Então, se eu enviar os dados atuais para o servidor, salve-o e, em seguida, atualizar obter o resultado:

O código para visualizar e enviar os dados é:

function sendData() {
            var req = createRequest();
            var putUrl = "rest/hello/treeData";
            req.open("post", putUrl, true);
            req.setRequestHeader("Content-type","application/json");
            var dsdata = $("#treeview").data("kendoTreeView").dataSource.data();
            alert(JSON.stringify(dsdata));
            req.send(JSON.stringify(dsdata));

            req.onreadystatechange = function() {
                if (req.readyState != 4) {
                    return;
                }
                if (req.status != 200) {
                    alert("Error: " + req.status);
                    return;
                }
                alert("Sent Data Status: " + req.responseText);
            }
        }

Isso é um bug ou estou fazendo algo errado? Alguém foi capaz de ver os dados atuais mudando corretamente em cada arrastar e soltar?

questionAnswers(2)

yourAnswerToTheQuestion