if (node instanceof Ext.tree.TreeNode && node.hasChildNodes()) {
node.expand(true, false, function(pnd) {
pnd.eachChild(function(child) {
child.ui.toggleCheck(checked);
child.attributes.checked = checked;
child.fireEvent('checkchange',
checkchangeListner, child);
}, pnd);
});
}
}
SysRoleFunctionFrom.prototype.tree0 = function() {
var url = "/pub/sysfunPubTreeAction.do";
var acurl = "/system/getNodePubEmployeeAction.do";
var fclick = function(dx) {
};
var tc = new Mes_function();
var tpl = tc.getTreePanel(url, acurl, "qxtree00", fclick, "系统菜单");
tpl.on('checkchange', function(node, checked) {
var tree = Ext.getCmp("qxtree00");
});
tpl.on('checkchange', checkchangeListner, tpl);
var loader = tpl.getLoader();
var tree0 = Ext.getCmp("qxtree00");
var node = tree0.getSelectionModel().getSelectedNode();
var a = null;
if (node != null) {
a = node.id;
}
loader.baseParams = {
node : a
}
return tpl;
};
说明,这个树是项目统一封装的,只需要给必要的参数就可以了,自己申明的树一样可以这样用,
支持限持级的展开和选中
************************************************************************************
<body>
<script>
Ext.BLANK_IMAGE_URL = "../resources/images/default/s.gif";
Ext.QuickTips.init();
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
Ext.onReady(function(){
/************************** 联系人树形菜单**************************/
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}});
}
}
}
});
// 添加 树的右键菜单
contacterTree.on('contextmenu', menuShow);
function menuShow ( node )
{
treeRightMenu.show(node.ui.getAnchor());
node.select();//让右击是选中当前节点
};
var treeRightMenu = new Ext.menu.Menu({
id: 'treeMenuContext',
items: [
{
text: '搜索联系人',
icon:"../images/shared/icons/fam/search.gif",
handler:function()
{
Search_Contacter("搜索联系人"); // 具体可以根据自己的需求来写。。
}
},
{
text: '添加联系人',
icon:"../images/shared/icons/fam/add.gif",
handler:function()
{
AddContacter("新增联系人"); // 具体可以根据自己的需求来写。。
}
},{
text: '添加分组',
icon:"../images/shared/icons/fam/add.gif",
handler:function()
{
AddContacterGroup("新增分组"); // 具体可以根据自己的需求来写。。
}
},{
text: "删除",
icon: "../images/shared/icons/fam/delete.gif",
handler:function()
{
treeDelContacter(); // 具体可以根据自己的需求来写。。
}
}
/* ,{
text:"修改",
icon: "../images/shared/icons/fam/cog_edit.png",
handler:function()
{
treeEditContacter();
}
} */
]
});
// 当选中父节点时,让其子节点相应选中
contacterTree.on('checkchange', function(node, checked) {
node.expand();
node.attributes.checked = checked;
node.eachChild(function(child) {
child.ui.toggleCheck(checked);
child.attributes.checked = checked;
child.fireEvent('checkchange', child, checked);
});
}, contacterTree);
// 删除事件
function treeDelContacter(){
// 当右键点击删除时,先判断右键点击的是分组节点还是枝节点
// 通过选择模型来得到右键点击的节点
var selectModel = contacterTree.getSelectionModel();
var node = selectModel.getSelectedNode();
if(node.id == "treeContact"){
// 右键根节点
Ext.MessageBox.alert("提示","根节点是不允许删除的!");
}else if(node.isLeaf() == true){
// 右键 联系人节点
var flag = confirm("您确定要删除名为 :“"+node.text+" ”的联系人信息吗?");
if(flag == true){
location.href="<%=path%>/contacterManage.do?action=delContacters&strContacterId="+node.id+";";
//alert("成功删除名为 :"+node.id+" 的联系人信息!");
}
}else{
// 右键 分组节点
var flag = confirm("您确定要删除名为 :“"+node.text+" ”的分组信息吗?");
if(flag == true){
//alert("成功删除名为 :"+node.id+" 的分组信息!");
location.href="<%=path%>/contacterManage.do?action=delContacterGroup&strGroupId="+node.id+";";
}
}
}
// 修改事件
/* function treeEditContacter(){
// 当右键点击删除时,先判断右键点击的是分组节点还是枝节点
// 通过选择模型来得到右键点击的节点
var selectModel = contacterTree.getSelectionModel();
var node = selectModel.getSelectedNode();
if(node.id == "treeContact"){
// 右键根节点
Ext.MessageBox.alert("提示","根节点是不允许修改的!");
}else if(node.isLeaf() == true){
// 右键 联系人节点
}else{
// 右键 分组节点
}
} */
});