話不多說,直接開始一二三。
jeesite頁面上通過以自定義jstl <sys:treeselect >方式引入樹形選擇
1、<sys:treeselect id="company" name="company.id" value="${user.company.id}" labelName="company.name" labelValue="${user.company.name}"
title="公司" url="/sys/office/treeData?type=1" cssClass="input-small" allowClear="true"/>
首先通過sys:treeselect(taglib.jsp) 找到web-inf/tags/sys/treeselect.tag文件
2、treeselect.tag
第一個作用是局部頁面樣式。
<div class="input-append"><input id="${id}Id" name="${name}" class="${cssClass}" type="hidden" value="${value}"/>
<input id="${id}Name" name="${labelName}" ${allowInput?'':'readonly="readonly"'} type="text" value="${labelValue}" data-msg-required="${dataMsgRequired}"
class="${cssClass}" style="${cssStyle}"/><a id="${id}Button" href="javascript:" class="btn ${disabled} ${hideBtn ? 'hide' : ''}" style="${smallBtn?'padding:4px 2px;':''}"> <i class="icon-search"></i> </a>
</div>
第二個作用:接收傳參。通過sys:treeselect 後面的key=value...具體可以看下treeselect.tag的解釋
第三個作用:觸發點擊事件。引用了jbox.js
top.$.jBox.open("iframe:${ctx}/tag/treeselect?url="+encodeURIComponent("${url}")+"&module=${module}&checked=${checked}&extId=${extId}&isAll=${isAll}", "選擇${title}", 300, 420, {
ajaxData:{selectIds: $("#${id}Id").val()},buttons:{"確定":"ok", ${allowClear?"\"清除\":\"clear\", ":""}"關閉":true}, submit:function(v, h, f){
top:調用父類窗口(如果去除,效果還在,不過會被彈出窗口擋住)
$.jBox.open :指打開一個窗口以iframe的形式,冒號後面跟着url,ajaxData是額外的參數
submit:function(v, h, f):/* 點擊狀態按鈕後的回調函數,返回true時表示關閉窗口,參數有三個,v表示所點的按鈕的返回值,h表示窗口內容的jQuery對象,f表示窗口內容裏的form表單鍵值 */
3、通過${ctx}/tag/treeselect 跳轉到modules/sys/tagTreeselect.jsp 頁面
4、tagTreeselect是jbox生成的iframe裏的內容。
script裏全是ztree的配置,ajax,回調函數,和對節點的操作。