① jstree動態添加節點時怎麼刷新
var UITree = function () {
var contextualMenuSample = function() {
$.jstree.destroy ("#tree_3");
$('#tree_3').jstree({
"core" : {
"themes": {
"responsive": false
},
"check_callback": true,
"force_text": true,
"cache": false,
'state':open,
'data': {
"url": function() {
return "/authority/showOnlyTheme";
},
"data":function(node){
return {"id" : node.id};
}
}
},
"plugins": [ "contextmenu", "ui"]
/*'contextmenu':{
'items':{
'edit':null
}
}*/
}).bind("loaded.jstree", function () {
jQuery("#tree_3").jstree("open_all");
}).bind("create_node.jstree",function(event,data){
createCategory(event,data);
}).bind("rename_node.jstree",function(event,data){
rename(event,data);
}).bind("delete_node.jstree",function(event,data){
reMove(event,data);
})
}
return {
init: function () {
contextualMenuSample();
}
};
function createCategory(event,data){
var str = data.parent;
var parentId = str.substring(1);;
if(!str.match(/^c\d+/g)){
parentId = -1;
}
var newNodeName = data.node.text;
var params = {"parentId":parentId,"name":newNodeName,"rootId":parentId};
$.ajax({
'url':"/categoryManager/addOrUpdate",
'type':"post",
'dataType':'json',
'cache':false,
'data':params,
'timeout':1000*10
}).done(function(json){
var id = data.node.id;
var categoryId = json.data;
$(data.node).attr("id",categoryId);//此處修改成後台返回的id
}).fail(function(e){
Metronic.unblockUI();
alert("親出錯了,請稍後再試");
})
}
function rename(event,data) {
var str = data.node.id;
if(str.match("#")) {
alert("不能修改根節點");
return;
}
var id = str.substring(1);
var name = data.text;
var params = {"id":id,"name":name};
$.ajax({
'url':'/categoryManager/updateName',
'type':'post',
'dataType':'json',
'data':params,
'cache':false,
'timeout':1000*10
}).fail(function(){
Metronic.unblockUI();
alert("親出錯了,請稍後再試~");
})
}
function reMove(event,data) {
var str = data.node.id;
if(str.match("#")) {
alert("親,不能刪除根節點");
return ;
}
var id = str.substring(1);
var params = {"id":id};
$.ajax({
'url':"/categoryManager/del",
'type':"post",
'dataType':"json",
'data':params,
'cache':false,
'timeout':1000*10
}).done(function(json){
if(json.ret==false) {
alert(json.errmsg);
}
}).fail(function(json){
Metronic.unblockUI();
alert("親出錯了,請稍後再試~");
})
}
}();
② extjs 4中treepanel重復載入。
你後台的tree的json沒有提供。不懂寫得有沒有問題。
給你一段extjs4的tree代碼參考。希望能幫助到你
test.json文件
{children:[
{id:'01',text:'a01',children:[
{id:'01-01',text:'a01-01',leaf:true},
{id:'01-02',text:'a01-02',children:[
{id:'01-02-01',text:'b01-02-01',leaf:true},
{id:'01-02-02',text:'a01-02-02',leaf:true}
]
},
{id:'01-03',text:'b01-03',leaf:true}
]
},
{id:'02',text:'b02',leaf:true}
]
}
vartreeStore1=Ext.create('Ext.data.TreeStore',{
autoLoad:true,
proxy:{
type:'ajax',
//也可以是提交給action,返回json格式就行
url:'test.json.json',
reader:{
type:'json',
root:'children'
//record:'node'
}
},
sorters:[{
property:'leaf',
direction:'ASC'
}],
root:{
nodeType:'async',
text:'ExtJS',
//id:'00',
expanded:true
}
});
vartreepanel1=Ext.create('Ext.tree.TreePanel',{//如果超出范圍帶自動滾動條autoScroll:true,
//animate:true,
//root:root,
//默認根目錄不顯示
rootVisible:true,
border:false,
animate:true,
lines:true,
//enableDD:true,
height:600,
store:treeStore1
//width:500
//containerScroll:true
});
③ jquery jstree的 refresh函數怎麼用
var tree = jQuery.jstree.reference("#jstree");
tree.refresh();
請參考這個國外的網址: http://stackoverflow.com/questions/3682045/how-can-i-refresh-the-contents-of-a-jstree。
我是用ajax載入的jstree,在一個button的onclick中調用了上面兩段代碼,成功刷新了jstree!
④ 在ExtJs4中,對於treepanel增加節點後應該如何刷新
數據綁定
tree.on('beforeload', function (node) {
node.select();
tree.loader.dataUrl = 'UnitsList.aspx?cmd=getTree&ID=' + node.id + '&rd=' + Math.random(); //定義子節點的Loader
});
GetTree只用查詢 ParentID=ID 的數據 返回即可
添加之後 刷新
if (tree.getSelectionModel().getSelectedNode() == null || tree.getSelectionModel().getSelectedNode().id == null) {
tree.root.reload();
} else {
tree.getNodeById(tree.getSelectionModel().getSelectedNode().id).reload();
}
⑤ extjs4 treepanel 動態的載入節點,怎麼在選中時,級聯選中子節點呢
Ext.create('Ext.tree.Panel',{
//添加監聽事件
listeners:{
checkchange:function(node,state){
//如果被勾選的節點有子節點,則將其專子節點全部改為根節點狀態屬
if(node.hasChildNodes()){
for(varj=0;j<node.childNodes.length;j++){
node.childNodes[j].set('checked',state);
}
}
}
});
⑥ jstree 只顯示刷新不出數據
沒有附件啊,建議你自己先檢查下。用IE的瀏覽器,然後在代碼塊前加上debugger,F5調試一下。看看是不是找不到對象,同時也把IE的腳本調試功能開啟。祝你
⑦ 彈出窗口調用js方法刷新extjs grid的數據
彈出窗口的時候在window前面加上一個return空格window.open(),在彈出窗口關閉時,寫上window.returnValue =「值",在grid的頁面上判斷值來調用reload()刷新