解决方法如下:
(1)通过Ztree自带的属性,对根节点进行展开
在Ztree的属性中,存在一个open的属性,这个属性针对于某个节点,记录着treeNode 节点的 展开 / 折叠 状态。使用方法:
Control层
/**
* 功能描述: 树查询
*
* <pre></pre>
*
* @param request
* @return
*/
@ResponseBody
@RequestMapping("/queryTree")
public List queryTree(HttpServletRequestrequest) {
Map params=MapConvert.arrayMapToStringMap(request.getParameterMap());
ResultVO<Map> rs= newResultVO<Map>();
rs=itestService.queryTree(params);
return rs.getResultlist();
}
ServiceImp层
/**
* 功能描述: 树查询
* @param params
* @return
*/
@SuppressWarnings({"unchecked","rawtypes"})
@Override
public ResultVO<Map> queryTree(Mapparams) {
ResultVO<Map> rs= newResultVO<Map>();
List treeNodes= new ArrayList();
if(params.get("treeid") ==null || "".equals(params.get("treeid"))) {
Map node= new HashMap();
node.put("pid","0");
node.put("id","root");
node.put("name", "车型");
node.put("isParent","true");
node.put("open","true");//给根节点设置节点展开的属性
treeNodes.add(node);
}elseif("root".equals(params.get("treeid").toString())) {
treeNodes= testdao.queryFirstTree(params);
}
rs.setResultlist(treeNodes);
rs.setReturncode(DpConstant.OK);
return rs;
}
注意:使用该属性需要注意的一点是,这个属性只能够在非异步加载的模式下生效
(2)通过onAsyncSuccess 的属性,对根节点进行展开
这个属性一般只是出现在异步加载树的情况下,这个表示异步加载树成功结束时,创建该函数并执行相关的操作。
JS文件
//初始化界面
var initpage=function(){
var setting = {
simpleData: {
enable: true,
idKey: "id",
pIdKey: "pid"
},
async: {
enable: true,
url:contxtpath +treemodel+'/queryTree.action',
autoParam: ["id=treeid"]
},
callback: {
onAsyncSuccess: onAsyncSuccess,
onClick: onClick
}
};
$.fn.zTree.init($("#maintree"),setting);
treecode= "maintree";
}
function onClick(event,treeId, treeNode, clickFlag){
treeId=treeNode.name;
//通过点击不同的树节点,对主界面的数据进行过滤
queryDataList();
manager.setParm('treeId',treeId);
}
function onAsyncSuccess(event, treeId, treeNode, msg) {
if (Empty(treeNode)) {
try {
var zTree =$.fn.zTree.getZTreeObj(treeId);
var nodes = zTree.getNodes();
zTree.expandNode(nodes[0], true);//表示默认展开第一层节点
zTree.selectNode(nodes[0]);
} catch (str) {
$.ligerDialog.error(str.message,errormessage);
}
}
}