tree = new Ext.tree.TreePanel({
renderTo: 'CarListdiv',
useArrows: true,
border: true,
frame: true,
animCollapse: false,
draggable: false,
animate: false,
rootVisible: true,
enableDD: true,
containerScroll: true,
autoScroll: true,
height: 200,
root: tree_root
, listeners: {
"click": function (node) {
// debugger;
//alert(node.leaf);alert(node.attributes.ishide);
if (node.leaf) {
node.ui.toggleCheck(true);
node.attributes.checked = true;
selectId = node.id;
selfOp = 1;
storeLoad = 0;
addCar(node.id);
debugger;
focusCar(node.id);
debugger;
showTooltip_rightClick(node.id, 1);
}
else {
if (ds1.isFiltered)
ds1.clearFilter();
setBestView(node)
node.expand();
}
},
"dblclick": function (node) {
node.ui.toggleCheck(true);
node.attributes.checked = true;
if (!node.leaf) {
node.expand();
}
},
'checkchange': function (node, e) {
if (!node.leaf) {
node.eachChild(function (child) {
child.ui.toggleCheck(node.attributes.checked);
child.attributes.checked = node.attributes.checked;
child.fireEvent('checkchange', child, node.attributes.checked);
});
}
else {
if (node.attributes.checked) {
debugger;
addCar(node.id);
}
else {
removeCar(node.id);
}
}
}
, 'load': function () {
if (load == 1)//加载完成后
{
// alert("加载完成后");
Ext.get(this.getEl()).unmask();
}
},
"beforeload": function () {
// return;
if (load == 0) {
Ext.get(this.getEl()).mask('正在加载车辆,请稍候...', 'x-mask-loading');
load = load + 1;
} else {
if (load == 1) {
Ext.get(this.getEl()).unmask();
load = load + 1;
}
}
},
"contextmenu": function (node, e) {
debugger;
if (!node.leaf)
return;
selectId = node.id;
if (ds1.isFiltered())
ds1.clearFilter();
var car = ds1.getById(node.id);
if (car.data['LOCATIONTYPE'] == 1) {
bartitle = "人员";
createtreeMenuByperson();
treeMenuByperson.showAt(e.getPoint());
} else {
bartitle = "车辆";
if (car.data['LOCK_STATUS'] == 1) {
createTreeMenu();
treeMenu.showAt(e.getPoint());
}
else {
createTreeMenu();
treeMenu.showAt(e.getPoint());
}
}
//filterDs1();
}
}
});
//设置属性
tree.root.attributes.description = '这是根节点';
// debugger;
tree.root.expand(true);
appendChildNodesFromServerData(tree.root); // load data
function appendChildNodesFromServerData(node) { // append child nodes from server data
// debugger;
Ext.Ajax.request({
method: "post",
// headers: { 'Content-Type': 'application/json' },
jsonData: { v_companyInfo: '*' },
url: 'ws/ws_jquery_carinfo.asmx/GetAllCarByCmpId',
success: function (request) {
//debugger;
//alert(request.responseText);
var data = Ext.util.JSON.decode(request.responseText);
// debugger;
node.appendChild(data.d); // append child nodes
//alert(data.d);
//document.writeln(data.d);
removeChildNodes(node);
node.reload();
node.expandChildNodes(true); // expand node
// debugger;
},
failure: function (resp, opts) {
// debugger;
var respText = Ext.util.JSON.decode(resp.responseText);
Ext.Msg.alert('错误', respText.error);
Ext.MessageBox.show({
title: '版块管理',
msg: 'appendChildNodesFromServerData 对不起,加载数据出现异常,请重试!',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.ERROR
});
}
});
}
function removeChildNodes(node) { // remove all child nodes
while (node.firstChild) {
removeChildNodes(node.firstChild);
}
if (node.getDepth() != "0") { // isn't root node
node.remove();
}
}
<script src="js/datetime.js" type="text/javascript" charset="gb2312"></script>
<link rel="stylesheet" type="text/css" href="js/ext-3.4.0/resources/css/ext-all.css" />
<script type="text/javascript" src="js/ext-3.4.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="js/ext-3.4.0/ext-all.js"></script>
<script type="text/javascript">
function singlemutimodel_change(obj) {
//
if ("单选" == obj.value) {
appendChildNodesFromServerData(forumTree.root);
document.getElementById("hfd_DeviceId").value = "";
} else {
appendChildNodesFromServerData(forumTree.root, false);
document.getElementById("hfd_DeviceId").value = "";
}
}
</script>
<script type="text/javascript">
var forumTree;
function trimStr(rawStr, rpCha) {
//去除开始字符窜
//debugger;
//if (rawStr.startsWith(rpCha))
if( rawStr.indexOf(rpCha) == 0)
{
rawStr = rawStr.substring(rpCha.length, rawStr.length);
}
//去除结束字符串
//if (rawStr.endsWith(rpCha))
if( rawStr.indexOf(rpCha)== rawStr.length-rpCha.length)
{
rawStr = rawStr.substring(0, rawStr.length - rpCha.length);
}
return rawStr;
}
function CheckTreeNodeCheckState(node) {
var tmpIpcList = document.getElementById("hfd_DeviceId").value;
var tmpselectId;
if (node.attributes.checked && node.isLeaf) {
tmpselectId = node.id;
if (tmpselectId != null) {
var realIpcId = tmpselectId.toString().substring("ipc_".length, tmpselectId.length);
//
tmpIpcList = tmpIpcList.replace(realIpcId, "");
tmpIpcList = tmpIpcList.replace("&&", "&");
tmpIpcList = trimStr(tmpIpcList, '&');
//
if (tmpIpcList != "") {
tmpIpcList += "&";
}
tmpIpcList += realIpcId;
tmpIpcList = trimStr(tmpIpcList, '&');
document.getElementById("hfd_DeviceId").value = tmpIpcList;
//alert(tmpIpcList);
}
} else if (!node.attributes.checked && node.isLeaf) {
tmpselectId = node.id;
if (tmpselectId != null) {
var realIpcId = tmpselectId.toString().substring("ipc_".length, tmpselectId.length);
tmpIpcList = tmpIpcList.replace(realIpcId, "");
tmpIpcList = tmpIpcList.replace("&&", "&");
tmpIpcList = trimStr(tmpIpcList, '&');
document.getElementById("hfd_DeviceId").value = tmpIpcList;
// alert(tmpIpcList);
}
}
}
function removeChildNodes(node) { // remove all child nodes
while (node.firstChild) {
removeChildNodes(node.firstChild);
}
if (node.getDepth() != "0") { // isn't root node
node.remove();
}
}
function appendChildNodesFromServerData(node, v_checked) { // append child nodes from server data
var myurl = 'WebService_ClientApp.asmx/GetIpcListForExtTree_nocheck';
var cliAcctType = 'Father';
var zhuAcctId;
var loginUserId = 'test';
var LoginPwd;
var checked = false;
if (v_checked != null) {
checked = v_checked;
myurl = 'WebService_ClientApp.asmx/GetIpcListForExtTree';
}
LoginPwd = 'test';
if (cliAcctType == "Father") {
zhuAcctId = 'test';
loginUserId = zhuAcctId;
} else if (cliAcctType == "Child") {
zhuAcctId = '';
}
Ext.Ajax.request({
method: "post",
headers: { 'Content-Type': 'application/json' },
jsonData: {
v_ZhuYongHuId: zhuAcctId
, v_Model: cliAcctType
, v_UserId: loginUserId
, v_UserPwd: LoginPwd
, v_check: checked
},
url: myurl,
success: function (request) {
var data = Ext.util.JSON.decode(request.responseText);
// debugger;
removeChildNodes(node);
node.reload();
node.appendChild(data.d); // append child nodes
node.expandChildNodes(true); // expand node
},
failure: function (resp, option) {
// debugger;
Ext.MessageBox.show({
title: '版块管理',
msg: '对不起,加载数据出现异常,请重试!',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.ERROR
});
}
});
}
Ext.onReady(function () {
Ext.QuickTips.init();
forumTree = new Ext.tree.TreePanel({
useArrows: true,
border: true,
frame: false,
renderTo: 'IpcTree',
title: '',
animCollapse: false,
draggable: false,
animate: false,
rootVisible: true,
enableDD: true,
containerScroll: true,
autoScroll: true,
height: 500,
root: new Ext.tree.AsyncTreeNode({
nodeType: 'async',
id: "id",
text: "根节点",
expanded: true,
leaf: false,
iconCls: 'group'
,
children: [
]
})
, listeners: {
"click": function (node) {
if (node.leaf) {
node.ui.toggleCheck(true);
node.attributes.checked = true;
selectId = node.id;
selfOp = 1;
storeLoad = 0;
var realIpcId = selectId.toString().substring("ipc_".length, selectId.length);
//alert(selectId + " >>> " + realIpcId);
document.getElementById("hfd_DeviceId").value = realIpcId;
}
else {
node.expand();
}
}
, 'checkchange': function (node, e) {
if (!node.leaf) {
node.eachChild(function (child) {
child.ui.toggleCheck(node.attributes.checked);
// if(child.attributes.checked==node.attributes.checked)
// child.attributes.checked = node.attributes.checked;
// child.fireEvent('checkchange', child, node.attributes.checked);
});
}
else {
if (node.attributes.checked) {
CheckTreeNodeCheckState(node);
}
else {
CheckTreeNodeCheckState(node);
}
}
}
}
});
// debugger;
//forumTree.render(document.body);
forumTree.render();
forumTree.expandAll(); // 展开所有结点
//forumTree.render();
// debugger;
// if(hdf_SelectedIndexChanged.Value=="单选")
// appendChildNodesFromServerData(forumTree.root); // load data
// else
appendChildNodesFromServerData(forumTree.root, false); // load data
/
});
</script>