treecheck 這裏有傳參數

 tree.loader.on('beforeload',function(treeLoader,node)帶參數主要加了這個 事件
Ext.onReady(function(){
  
	Ext.BLANK_IMAGE_URL = "ext/resources/images/default/s.gif";
	
	var jobstore = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({url: "carservice/gw!jobAll.action"}),
        reader: new Ext.data.JsonReader({
        	root: 'root'
        },[
        	{name: 'jobid'},
        	{name: 'jobname'}
        ])
    }); 
    jobstore.load();
	var job=new Ext.form.ComboBox({//下拉框         
          hiddenName:'job',
          fieldLabel:'車型',
          triggerAction:'all', //  單擊觸發按鈕顯示全部數據
          store:jobstore,        //設置數據源
          displayField:'jobname',    //定義要顯示的字段
          valueField:'jobid',          //定義值字段
          mode:'local',            //本地模式
          forceSelection:true,   //要求輸入值必須在列表中存在
          resizable:true  //允許改變下拉列表的大小          
	})
	
	var form=new Ext.form.FormPanel({
	        title:'崗位權限分配',
	        renderTo:'form',
//			region:'north',				
			autoWidth:true,
	        height:80,
	        collapsible: true,      
	        autoScroll: true,
			labelAlign:'right',//標籤對齊方式
			frame:true,	
			items:[{
			layout:'column',
			items:[
			{columnWidth:.50,layout:'form',items:[job]},		
			{columnWidth:.50,layout:'form',items:[{xtype:'button',width:50,text:'確認'}]}//,handler:onSelectClick		
			]			
			}]
	});
	
    var Tree = Ext.tree;    
	var tree = new Tree.TreePanel({ 
		el:'tree',
//       	region:'center',	    
        useArrows:true,    
        autoScroll:true, 
        rootVisible:true,//是否顯示根節點
        animate:true,    
        enableDD:true,    
        containerScroll: true,     
        loader: new Tree.TreeLoader({    
        dataUrl:'carservice/Power!Powertree.action'   
        }),
        buttons:[{text:'選中的結果',handler:Oksubmit}]
    }); 
   tree.loader.on('beforeload',function(treeLoader,node){ //帶參數
        this.baseParams.jobid =''+job.getValue() ;
            }); 
            
     tree.on('checkchange', function(node, checked) {
     	
      node.attributes.checked = checked; 
     	if(!node.isLeaf)
     	{
     	  node.expand(); 
     	}else
     	{
     	    node.eachChild(function(child) {       
	            child.ui.toggleCheck(checked);       
	            child.attributes.checked = checked;       
	            child.fireEvent('checkchange', child, checked);       
       		 });     	  
     	}
     	if(node.getDepth()!=1)
     	{   
     		var parentNode = node.parentNode;  
     		var b=false;     	    
     	    var childNodes = parentNode.childNodes;
     	   if (childNodes && childNodes.length > 0)
     	   {
     	         for (var i = 0, len = childNodes.length; i < len; i++) 
     	         {
     	              if(childNodes[i].getUI().checkbox){
                         b=childNodes[i].getUI().checkbox.checked;
                          if(b)
                          {
                           break;
                          }
                       }     	         
     	         }
     	   }

     		  nodeParCheckChange(node,b);    	   
     	}
     	
       
    }, tree);    
      // 當選擇節點時影響所有的父節點
    var nodeParCheckChange = function(node, bool) {
        if (node) {
            // 對所有的父節點進行選中與取消
            var parentNode = node.parentNode;
            while (parentNode) {
                if(parentNode.getUI().checkbox){
                    parentNode.getUI().checkbox.checked = bool;
                }
                parentNode = parentNode.parentNode;
            }
        }
    };

    function Oksubmit()
    {
    	var checkedNodes = tree.getChecked();//tree必須事先創建好.
         var s = [];
         for(var i=0;i<checkedNodes.length;i++){
         s.push(checkedNodes[i].id)
         }
         var data=Ext.encode(s);
         alert(data);
    }
    var root = new Tree.AsyncTreeNode({    
        text: '權限分配',    
        draggable:false, 
        jobid:'',//爲了帶這個參數設定與上面 tree的 beforeload 那個參數有關係
//        checked:false,
        id:' '   
    });    
    tree.setRootNode(root);       
    tree.render();    
//    root.expand();  
    
//    var portview=new Ext.Viewport({
//      layout:'border',
//      items:[form,tree]
//    });
});

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章