EasyUI Tree是一款常用的樹形結構展示插件,我們可以利用它來展示各種樹形數據,如菜單樹、組織結構樹等。默認情況下,EasyUI Tree會將我們的數據轉換成固定的JSON格式進行展示,但是有時候我們需要根據自己的業務需求自定義JSON數據格式,此時我們可以通過EasyUI Tree提供的一些API來實現。
首先,我們需要將EasyUI Tree的data屬性設置為false,這樣EasyUI Tree就不會自己生成JSON數據了,而是等待我們通過JavaScript代碼來自定義JSON數據。
$('#tree').tree({ url: '', data: false });
然后,我們可以利用EasyUI Tree提供的loadData方法來實現數據的加載,在方法中傳入我們自定義的JSON數據即可。
var data = [{ id: 1, text: 'Node1', children: [{ id: 11, text: 'Node11' },{ id: 12, text: 'Node12' }] }, { id: 2, text: 'Node2' }]; $('#tree').tree('loadData', data);
通過上面的示例代碼,我們就可以將自定義的JSON數據展示在EasyUI Tree插件中了。如果我們的JSON數據中存在異步加載的子節點,可以通過將節點的state屬性設置為'closed'來實現,當節點被展開時利用EasyUI Tree提供的onBeforeExpand事件來異步加載子節點的數據。
var data = [{ id: 1, text: 'Node1', children: [{ id: 11, text: 'Node11', state: 'closed' }] }]; $('#tree').tree({ url: '', data: false, onBeforeExpand: function(node) { if (node.children && node.children.length == 0) { $.ajax({ url: 'getChildren.php', dataType: 'json', data: { id: node.id }, success: function(data) { $('#tree').tree('append', { parent: node.target, data: data }); } }); } } }); $('#tree').tree('loadData', data);
總之,通過以上的方法,我們就可以輕松地將自定義的JSON數據展示在EasyUI Tree插件中了。更多EasyUI相關的內容,請關注我們的博客。