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]
// });
});