首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

动态获取Ext的树形构造

2012-11-22 
动态获取Ext的树形结构当下拉列表选择不同的选项的时候 加载不同的树形结构下拉列表onselect事件的方法为f

动态获取Ext的树形结构
当下拉列表选择不同的选项的时候 加载不同的树形结构

下拉列表onselect事件的方法为

function taskchange()
{
  var url;
  taskid = cbotask.getValue();
  for(var i=0;i<treedata.length;i++)
  {
      if(treedata.taskid==taskid)
      {
          taskroot.setText(treedata.name);
          url = 'back/Taskaction_getfmdata.action?taskid='+taskid+'&dwdm='+treedata.dwdm;
      }
  }
  taskloader.url = url;
  taskroot.reload();
}

树形结构的实现方式为


var taskid = '';
var taskroot = new Ext.tree.AsyncTreeNode({
        text:'具体任务'
});
//加载数数据集  这个地方我不知如何写 因为我把它的url写在了 下拉列表的onselect的事件里了
var taskloader = new Ext.tree.TreeLoader({
      url:''
      
});
//树形结构的实现
var tasktree = new Ext.tree.TreePanel({
    loader:taskloader,
    root:taskroot,
    borderalse,
    rootVisible:true,
    renderTo:'tasktree'
});

不知为什么我的taskloader请求的url都是一个 http://127.0.0.1081/apollo/back/Taskaction_getfmdata.action?taskid=zcjb&dwdm=100000000
所以说我的数据都是从根部数据开始加载 1 楼 peter2009 2009-09-22   var taskid = '';
    var taskroot = new Ext.tree.AsyncTreeNode({
    text:'具体任务',
    dwdm:'',
    taskid:''
    });
    var taskloader = new Ext.tree.TreeLoader({
    url:'back/Taskaction_getfmdata.action'
    });
   taskloader.on('beforeload', function(treeloader, node) {
treeloader.baseParams = {

taskid:taskid,
dwdm:node.attributes.dwdm

};
}, this);
   
   
    var tasktree = new Ext.tree.TreePanel({
    loader:taskloader,
    root:taskroot,
    border:false,
    rootVisible:true,
    renderTo:'tasktree'
    });
    //获取单位的根节点从服务器上获取一个json数组
    var treedata = ${unitinfos};
    //侦听cbotask的onchange方法 注下拉列表是cbotask
cbotask.on('select',taskchange);
//taskchange方法 替换单位的方法
function taskchange()
{
  var url;
  taskid = cbotask.getValue();
  for(var i=0;i<treedata.length;i++)
  {
  if(treedata[i].taskid==taskid)
  {
  taskroot.setText(treedata[i].name);
  taskroot.attributes.dwdm = treedata[i].dwdm;
  taskroot.attributes.taskid = taskid;
  }
  }

  taskroot.reload();
}
问题解决了 只要改变 root的属性就行 原来生活如此简单呀 !!!

热点排行