jquery easyui树的简答构造+动态生成js全局变量

jquery easyui树的简答构造:

JSP页面

组织机构: <input id="p_organId" name="p_organId"  style="width: 160px;height: 28px;">  

    function loadOrgan(){
        organ_combotree = $("#p_organId").combotree({
            url:'${ctxFront}/cust/tree',
            multiple:false,//是否可多选
            editable:false,//是否可编辑
            required:false
        });
    }

后台代码:


@SuppressWarnings("serial")
public class TreeNode implements Serializable {

	/**
	 * 静态变量 展开节点
	 */
	public static final String STATE_OPEN = "open";
	/**
	 * 静态变量 关闭节点
	 */
	public static final String STATE_CLOASED = "closed";

	/**
	 * 节点id
	 */
	private String id;
    /**
     * 父级节点id (用于zTree简单数据模型)
     */
    private String pId;
	/**
	 * 树节点名称
	 */
	private String text;
	/**
	 * 前面的小图标样式
	 */
	private String iconCls = "";
	/**
	 * 是否勾选状态(默认:否false)
	 */
	private Boolean checked = false;
	/**
	 * 自定义属性
	 */
	private Map<String, Object> attributes = Maps.newHashMap();
	/**
	 * 子节点
	 */
	private List<TreeNode> children;
	/**
	 * 是否展开 (open,closed)-(默认值:open)
	 */
	private String state = STATE_OPEN;

	public TreeNode() {
		this(null, null, "");
	}

	/**
	 * 
	 * @param id
	 *            节点id
	 * @param text
	 *            树节点名称
	 */
	public TreeNode(String id, String text) {
		this(id, text, "");
	}

	/**
	 * 
	 * @param id
	 *            节点id
	 * @param text
	 *            树节点名称
	 * @param iconCls
	 *            图标样式
	 */
	public TreeNode(String id, String text, String iconCls) {
		this(id, text, STATE_OPEN, iconCls);
	}

	/**
	 * 
	 * @param id
	 *            节点id
	 * @param text
	 *            树节点名称
	 * @param state
	 *            是否展开
	 * @param iconCls
	 *            图标样式
	 */
	public TreeNode(String id, String text, String state, String iconCls) {
		this.id = id;
		this.text = text;
		this.state = state;
		this.iconCls = iconCls;
		this.children = Lists.newArrayList();
	}

	/**
	 * 
	 * @param id
	 *            节点id
	 * @param text
	 *            树节点名称
	 * @param iconCls
	 *            图标样式
	 * @param checked
	 *            是否勾选状态(默认:否)
	 * @param attributes
	 *            自定义属性
	 * @param children
	 *            子节点
	 * @param state
	 *            是否展开
	 */
	public TreeNode(String id, String text, String iconCls, Boolean checked,
			Map<String, Object> attributes, List<TreeNode> children,
			String state) {
		super();
		this.id = id;
		this.text = text;
		this.iconCls = iconCls;
		this.checked = checked;
		this.attributes = attributes;
		this.children = children;
		this.state = state;
	}

	/**
	 * 添加子节点.
	 * 
	 * @param childNode
	 *            子节点
	 */
	public TreeNode addChild(TreeNode childNode) {
		this.children.add(childNode);
        return this;
	}

	/**
	 * 节点id
	 */
	public String getId() {
		return id;
	}

	public TreeNode setId(String id) {
		this.id = id;
        return this;
	}

    /**
     * 父级节点id (用于zTree简单数据模型)
     * @return
     */
    public String getpId() {
        return pId;
    }

    /**
     * @param pId 父级节点id (用于zTree简单数据模型)
     * @return
     */
    public TreeNode setpId(String pId) {
        this.pId = pId;
        return this;
    }

    /**
	 * 树节点名称
	 */
	public String getText() {
		return text;
	}

	public TreeNode setText(String text) {
		this.text = text;
        return this;
	}

	/**
	 * 是否勾选状态(默认:否)
	 */
	public Boolean getChecked() {
		return checked;
	}

	public TreeNode setChecked(Boolean checked) {
		this.checked = checked;
        return this;
	}

	/**
	 * 自定义属性
	 */
	public Map<String, Object> getAttributes() {
		return attributes;
	}

	public TreeNode setAttributes(Map<String, Object> attributes) {
		this.attributes = attributes;
        return this;
	}

	/**
	 * 子节点
	 */
	public List<TreeNode> getChildren() {
		return children;
	}

	public TreeNode setChildren(List<TreeNode> children) {
		this.children = children;
        return this;
	}

	/**
	 * 是否展开
	 */
	public String getState() {
		return state;
	}

	public TreeNode setState(String state) {
		this.state = state;
        return this;
	}

	/**
	 * 图标样式
	 */
	public String getIconCls() {
		return iconCls;
	}

	public TreeNode setIconCls(String iconCls) {
		this.iconCls = iconCls;
        return this;
	}
	
	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}

}

    @RequestMapping(value = {"tree"})
    @ResponseBody
    @DataSource(AppConstants.DATASOURCE_DW)//切换到datasource数据源
    public List<TreeNode> tree() throws Exception {
    	List<TreeNode> treeNodes = Lists.newArrayList();
        TreeNode proNode = new TreeNode("113600","江西省");
        proNode.setChecked(false);
        proNode.setIconCls("icon-organ-root");
        proNode.setpId(null);
        proNode.setState("closed");
    	List<Map> citylist=custService.findBySql("select distinct city_id,city_name from dim_organ_sale_procityxian where pro_id='113600'  order by city_id", new Parameter());
		List<TreeNode> citytree = Lists.newArrayList();
    	for(Map cityMap :citylist){
    		TreeNode cityNode = new TreeNode((String)cityMap.get("CITY_ID"),(String)cityMap.get("CITY_NAME"));
    		cityNode.setChecked(false);
    		cityNode.setIconCls("icon-organ-root");
    		cityNode.setpId(null);
    		cityNode.setState("closed");
    		List<Map> xialist=custService.findBySql("select distinct xia_id,xia_name from dim_organ_sale_procityxian where city_id='"+cityMap.get("CITY_ID")+"'  order by xia_id", new Parameter());
    		List<TreeNode> xiatree = Lists.newArrayList();    		
    		for(Map xiaMap :xialist){
        		TreeNode xiaNode = new TreeNode((String)xiaMap.get("XIA_ID"),(String)xiaMap.get("XIA_NAME"));
        		xiaNode.setChecked(false);
        		xiaNode.setIconCls("icon-organ-root");
        		xiaNode.setpId(null);
        		xiaNode.setState("open");    	
        		xiatree.add(xiaNode);
    		}
    		cityNode.setChildren(xiatree);
    		citytree.add(cityNode);
    	}
    	proNode.setChildren(citytree);
    	treeNodes.add(proNode);
    	return treeNodes;
    }

由于我的机构表没有父子关系,所以不能用递归的方法进行构造,只是一层层的手动构造,不过从这手动简单的构造可以学到要形成树形的数据结构

[ {
  "id" : "113600",
  "pId" : null,
  "text" : "江西省",
  "iconCls" : "icon-organ-root",
  "checked" : false,
  "attributes" : { },
  "children" : [ {
    "id" : "113601",
    "pId" : null,
    "text" : "南昌市",
    "iconCls" : "icon-organ-root",
    "checked" : false,
    "attributes" : { },
    "children" : [ {
      "id" : "11360102",
      "pId" : null,
      "text" : "南昌县",
      "iconCls" : "icon-organ-root",
      "checked" : false,
      "attributes" : { },
      "children" : [ ],
      "state" : "open"
    }],
    "state" : "closed"
  },
  "state" : "closed"
} ]

可以看出,要形成树有2个方法,1.json里面有children集合;2.json里面有_parentId。



动态生成js全局变量:

由于android项目中要不同Tab页进行分页,需要根据栏目的数量动态生成页码page变量存放页码。

        for(var i = 0; i < 4; i++) {
            window["page" + i] = 1;
        }

相当于生成了var page0=1;var page1=1;var page2=1;var page3=1;

在后面的使用中可以用使用,或者用window["page" + i] 当变量用。比如累加:window["page" + i] ++;或者赋值var page=window["page" + i] 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值