Setelah beroperasi pada simpul pohon, Anda sering perlu melakukan operasi pemuatan ulang untuk menyegarkan pohon, tetapi banyak bisnis perlu memilih simpul yang dipilih terakhir secara default setelah pohon disegarkan. Dengan cara ini, Anda harus terlebih dahulu menyimpan informasi dari simpul yang dipilih pada waktu sebelumnya, dan kemudian memperluas lapisan demi lapis melalui informasi node setelah dimuat ulang.
Setelah mencari waktu yang lama, saya akhirnya menemukan solusi yang layak, yaitu untuk merekam informasi lokasi simpul melalui jalur simpul, dan kemudian memperluas lapisan demi lapisan dari simpul root melalui jalur hingga simpul terakhir.
Kode yang sudah selesai adalah sebagai berikut:
Pertama, metode dalam versi extjs3.x:
Salinan kode adalah sebagai berikut:
// Dapatkan simpul yang dipilih
var node = tree.getSelectionModel (). getSelectedNode ();
if (node == null) {// pohon kelebihan beban tidak dipilih
tree.getrootnode (). Reload ();
} else {// Muat ulang pohon dan pilih node yang dipilih terakhir secara default
var path = node.getPath ('id');
Tree.getLoader (). Load (Tree.getrootnode (),
fungsi (treenode) {
Tree.Expandpath (Path, 'ID', Function (Bsucess, Olastnode) {
Tree.getSelectionModel (). Pilih (OlastNode);
});
}, ini);
}
Perbedaan antara extjs3.0 dan extjs4.2 adalah sebagai berikut
Salinan kode adalah sebagai berikut:
IDPath = selnode.getPath ("id");
Tree.getStore (). Load ({
node: tree.getrootnode (),
Callback: function () {
Tree.Expandpath (Idpath, 'ID');
}
});
Perlu dicatat bahwa ketika data JSON dari pohon dikembalikan di latar belakang, node harus berisi atribut ID. Ternyata ini tidak dapat mencapai efeknya, dan akhirnya, atribut ID ditambahkan ke JSON.