根据ID修改treegrid的图标

cc256288 2016-11-22 06:59:50
这是我的js:
目前实现的效果:
我期望的效果是只有黄色标注的节点显示文件的图标(id与其他的有其别,如:a01),其他的一律显示文件夹的图标(id:01)。

这样的效果怎么实现啊,希望各位路过的大神指点一下。
...全文
295 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
marlborone 2016-11-23
  • 打赏
  • 举报
回复
引用
appPkg.setSecutity(String.valueOf(login_user.getSecurityLevel()));
appPkg.setCreator(login_user.getUserId().shortValue());
List<AppPkg> appPkgNodes = appPkgMapper.selectAllByClass(appPkg);

List<TreeGridNode> treeNode = new ArrayList<TreeGridNode>();
//这里如果没有进循环的应该是那些需要处理的叶结点吧,那就在这里给加上去就好了
for (AppPkg appPkgNode : appPkgNodes) {
TreeGridNode trn = new TreeGridNode();



如果不行的话就只能在前端遍历了
lzh_me 2016-11-23
  • 打赏
  • 举报
回复
不知道你用的是哪个treegrid,你可以看下jquery tree grid( jqxTreeGrid),利用循环指定了每个的ico http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxtreegrid/#demos/jqxtreegrid/javascript-tree-grid-icons.htm

 var dataAdapter = new $.jqx.dataAdapter(source, {
                beforeLoadComplete: function (records) {
                    for (var i = 0; i < records.length; i++) {
                        var imgUrl = '../../images/' + records[i].FirstName.toLowerCase() + '.png';
                        records[i].icon = imgUrl;
                    }
                    return records;
                }
            }
lzh_me 2016-11-23
  • 打赏
  • 举报
回复
treegrid 一般会提供对应的方法来实现你要的功能。你可以找找。 第一个就是判断是否是末节点,这个你本身的id是特殊的,也可以判断出来 第二个是设置图标的功能,可以指定,或者有对应的属性可以配置。 有这2个,你在后台组装生成JSON的时候就可以使用特定的图标。
cc256288 2016-11-23
  • 打赏
  • 举报
回复
引用 1 楼 marlborone 的回复:
不想让他显示叶图标的话就给他添加一个children:[];
我这个json文件是直接由一个对象转换过来的,在查询的时候它是没有children的,这样的话怎么加children呢? @RequestMapping(value="/appPkgClassify", method=RequestMethod.POST) public void AppPkgClassify( HttpServletRequest req,HttpServletResponse response, AppPkg model) throws IOException { User login_user = (User) req.getSession().getAttribute(SessionHelper.UserHandler); List<TreeGridNode> classLists = appPkgServiceI.getAllAppClass(login_user); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); out.print(JSON.toJSONStringWithDateFormat(classLists, "yyyy-MM-dd HH:mm:ss")); } public List<TreeGridNode> getAllAppClass(User login_user) { AppPkgClassify classify = appPkgClassifyMapper.getAllAppClass(); TreeGridNode trn = new TreeGridNode(); trn.setId(classify.getId().toString()); trn.setName(classify.getName()); trn.setParentId(classify.getParentId().toString()); recursiveTree(trn,login_user); List<TreeGridNode> classifyList = new ArrayList<TreeGridNode>(); classifyList.add(trn); return classifyList; } public TreeGridNode recursiveTree(TreeGridNode apc,User login_user) { // 获取下一层节点 Short apcId = new Short(apc.getId()); List<AppPkgClassify> classNodes = appPkgClassifyMapper.getChild(apcId); List<TreeGridNode> treeNodes = new ArrayList<TreeGridNode>(); for (AppPkgClassify classNode : classNodes) { TreeGridNode trn = new TreeGridNode(); trn.setId(classNode.getId().toString()); trn.setName(classNode.getName()); trn.setParentId(classNode.getParentId().toString()); treeNodes.add(trn); } if (classNodes.size() == 0) { AppPkg appPkg = new AppPkg(); appPkg.setParentId(Short.valueOf(apc.getId())); appPkg.setSecutity(String.valueOf(login_user.getSecurityLevel())); appPkg.setCreator(login_user.getUserId().shortValue()); List<AppPkg> appPkgNodes = appPkgMapper.selectAllByClass(appPkg); List<TreeGridNode> treeNode = new ArrayList<TreeGridNode>(); for (AppPkg appPkgNode : appPkgNodes) { TreeGridNode trn = new TreeGridNode(); trn.setId("a"+appPkgNode.getId().toString()); trn.setParentId(appPkgNode.getParentId().toString()); trn.setName(appPkgNode.getName()); trn.setApplyType(appPkgNode.getApplyType()); trn.setApplyTypeName(appPkgNode.getApplyTypeName()); trn.setAppPkgDispose(appPkgNode.getAppPkgDispose()); trn.setAppPkgDisposeName(appPkgNode.getAppPkgDisposeName()); trn.setAppStatus(appPkgNode.getAppStatus()); trn.setAppStatusName(appPkgNode.getAppStatusName()); trn.setAuditOpinion(appPkgNode.getAuditOpinion()); trn.setAuditor(appPkgNode.getAuditor()); trn.setAuditTime(appPkgNode.getAuditTime()); trn.setCreateTime(appPkgNode.getCreateTime()); trn.setCreator(appPkgNode.getCreator()); trn.setEffectDes(appPkgNode.getEffectDes()); trn.setFeedback(appPkgNode.getFeedback()); trn.setFunctionPrototypeId(appPkgNode.getFunctionPrototypeId()); trn.setFunctionPrototypeName(appPkgNode.getFunctionPrototypeName()); trn.setLightSolutionId(appPkgNode.getLightSolutionId()); trn.setLightSolutionName(appPkgNode.getLightSolutionName()); trn.setLightType(appPkgNode.getLightType()); trn.setPmId(appPkgNode.getPmId()); trn.setPmName(appPkgNode.getPmName()); trn.setPrecision(appPkgNode.getPrecision()); trn.setRefuseReason(appPkgNode.getRefuseReason()); trn.setSection(appPkgNode.getSection()); trn.setSortie(appPkgNode.getSortie()); trn.setStage(appPkgNode.getStage()); trn.setUserFullName(appPkgNode.getUserFullName()); trn.setFileName(appPkgNode.getFileName()); trn.setSecutityName(appPkgNode.getSecutityName()); treeNode.add(trn); } apc.setChildren(treeNode); } else { apc.setChildren(treeNodes); // 遍历子节点 for (TreeGridNode child : treeNodes) { TreeGridNode n = recursiveTree(child,login_user); // 递归 } } return apc; }
marlborone 2016-11-23
  • 打赏
  • 举报
回复
不想让他显示叶图标的话就给他添加一个children:[];
marlborone 2016-11-23
  • 打赏
  • 举报
回复
加空children还是显示叶结点啊。。。 那没办法了,就只能遍历改图标了

traverse(data.children);
//树数据处理, 遍历树
function traverse(nodes) {
	if(nodes && nodes.length > 0) {
		for(var i = 0; i < nodes.length; i++) {
			if(nodes[i].children && nodes[i].children.length > 0) {
				traverse(nodes[i].children);
			} else if(nodes[i].id.indexOf("a") == -1) { //id没有的子节点啊
				//换图标
			}
		}
	}
}
cc256288 2016-11-23
  • 打赏
  • 举报
回复
引用 5 楼 marlborone 的回复:
引用
appPkg.setSecutity(String.valueOf(login_user.getSecurityLevel())); appPkg.setCreator(login_user.getUserId().shortValue()); List<AppPkg> appPkgNodes = appPkgMapper.selectAllByClass(appPkg); List<TreeGridNode> treeNode = new ArrayList<TreeGridNode>(); //这里如果没有进循环的应该是那些需要处理的叶结点吧,那就在这里给加上去就好了 for (AppPkg appPkgNode : appPkgNodes) { TreeGridNode trn = new TreeGridNode();
如果不行的话就只能在前端遍历了
谢谢你仔细的看了我的代码,可以在你说的位置加children,但是如果加一个有非空的对象的话会多出来一个没用的节点,加一个空的对象的话它本身还是显示的是叶子节点。

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧