关于ExtJs动态加载树

时间:2023-02-05 19:53:49
ExtJs动态加载的树时,Json字符串如下
{"children":[],"cls":"file","id":3,"leaf":true,"listeners":"{'click': function(node,event){alert('hello world');}}","text":"孙节点"};
不过万恶的Hello world就是不出来。。
请问,有没有办法在数据库定义出树的节点的响应事件?

3 个解决方案

#1


up

#2



  节点点击事件是定义在 treepanel 中,不是在 node 中,具体参见下事例。

 

   var contacterTree = new Ext.tree.TreePanel({
                 id:"treePanelContact",
                 border:false,
                 lines:false,   // 去掉树的线
      rootVisible:true,   
      autoScroll:true,
      animate:true,
      width:200,     
      height : 468,
      style:"background-color:#FFFFFF;border-color:#0099FF;",
     // enableDD: false,  // 允许树可以拖拽
      containerScroll: true,
      loader: new Ext.tree.TreeLoader({
                dataUrl:'<%=path%>/treeOperation.do?action=loadTree'
          }),
 root:new Ext.tree.AsyncTreeNode({
id : "treeContact",
    text: '联系人',
    draggable:false,      
    expanded: true   // 展开根节点下的节点
 }),
 listeners:{
click : function(node){
if(node.id == "treeContact"){
// 如果点击的是根节点,则 GridPanel 显示所有的数据
store.load({params:{flag:'all'}});
}
else if(node.isLeaf() == true){
// 如果点击的是枝节点的话,则根据 ID 查询联系人的信息
store.load({params:{flag:'contacter',contacterId:node.id}});
}else{
// 如果既不是根节点也不是枝节点,那么点击的就是分组节点,
// 则 GridPanel 显示对应分组号的联系人信息
store.load({params:{flag:'group',groupId:node.id}});
}     
     }
 }
    });
 

#3


楼上回答的什么啊,怎么看不到啊

#1


up

#2



  节点点击事件是定义在 treepanel 中,不是在 node 中,具体参见下事例。

 

   var contacterTree = new Ext.tree.TreePanel({
                 id:"treePanelContact",
                 border:false,
                 lines:false,   // 去掉树的线
      rootVisible:true,   
      autoScroll:true,
      animate:true,
      width:200,     
      height : 468,
      style:"background-color:#FFFFFF;border-color:#0099FF;",
     // enableDD: false,  // 允许树可以拖拽
      containerScroll: true,
      loader: new Ext.tree.TreeLoader({
                dataUrl:'<%=path%>/treeOperation.do?action=loadTree'
          }),
 root:new Ext.tree.AsyncTreeNode({
id : "treeContact",
    text: '联系人',
    draggable:false,      
    expanded: true   // 展开根节点下的节点
 }),
 listeners:{
click : function(node){
if(node.id == "treeContact"){
// 如果点击的是根节点,则 GridPanel 显示所有的数据
store.load({params:{flag:'all'}});
}
else if(node.isLeaf() == true){
// 如果点击的是枝节点的话,则根据 ID 查询联系人的信息
store.load({params:{flag:'contacter',contacterId:node.id}});
}else{
// 如果既不是根节点也不是枝节点,那么点击的就是分组节点,
// 则 GridPanel 显示对应分组号的联系人信息
store.load({params:{flag:'group',groupId:node.id}});
}     
     }
 }
    });
 

#3


楼上回答的什么啊,怎么看不到啊