废话不多说,直接贴代码
<script type="text/javascript">
$(document).ready(function () {
var tpl = $("#treeTableTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
var data = ${fns:toJson(list)}, ids = [], rootIds = [];
for (var i = 0; i < data.length; i++) {
ids.push(data[i].id);
}
ids = ',' + ids.join(',') + ',';
for (var i = 0; i < data.length; i++) {
if (ids.indexOf(',' + data[i].parentId + ',') == -1) {
if ((',' + rootIds.join(',') + ',').indexOf(',' + data[i].parentId + ',') == -1) {
rootIds.push(data[i].parentId);
}
}
}
for (var i = 0; i < rootIds.length; i++) {
addRow("#treeTableList", tpl, data, rootIds[i], true);
}
$("#treeTable").treeTable({expandLevel: 5});
});
function addRow(list, tpl, data, pid, root) {
for (var i = 0; i < data.length; i++) {
var row = data[i];
if ((${fns:jsGetVal('row.parentId')}) == pid) {
$(list).append(Mustache.render(tpl, {
dict: {
status: getDictLabel(${fns:toJson(fns:getDictList('status'))}, row.status),
blank123: 0
}, pid: (root ? 0 : pid), row: row
}));
addRow(list, tpl, data, row.id);
}
}
}
</script>
body中生成模板位置
<tbody id="treeTableList"></tbody>
自定义模板
<script type="text/template" id="treeTableTpl">
<tr id="{{row.id}}" pId="{{pid}}">
<td><a href="${ctx}/subject/subjectInfo/form?id={{row.id}}">
{{row.name}}
</a></td>
<td>
{{row.enName }}
</td>
<td>
<img src='{{row.pic}}' height='100' width='100' alt=''/>
</td>
<td>
{{row.subjectLevel}}
</td>
<td>
{{dict.status}}
</td>
<td>
{{row.remarks}}
</td>
<shiro:hasPermission name="subject:subjectInfo:edit">
<td>
<a href="${ctx}/subject/subjectInfo/form?parent.id={{row.id}}&schoolInfo.id={{row.schoolInfo.id}}&schoolCampus.id={{row.schoolCampus.id}}&&schoolCampus.campusName={{row.schoolCampus.campusName}}">添加下级科目</a>
<a href="${ctx}/subject/subjectInfo/form?id={{row.id}}">修改</a>
<a href="${ctx}/subject/subjectInfo/delete?id={{row.id}}"
onclick="return confirmx('确认要删除该科目及所有子科目吗?', this.href)">删除</a>
</td>
</shiro:hasPermission>
</tr>
</script>