EdwardSiCong 2013-04-19
jquery miniUi treeGrid 树动态加载问题,这里需要前台和后台交互
<div id="treegrid1" class="mini-treegrid" style="width:100%;height:480px;"
url="district-districtlist.htm" showTreeIcon="true"
treeColumn="taskname" idField="district_id" parentField="parent_id" resultAsTree="false"
showCheckBox="true" checkRecursive="false">
<div property="columns">
<div type="indexcolumn"></div>
<div name="taskname" field="district_name" headeralign="center"
allowSort="true">
菜单名称
</div>
<div field="district_id" headeralign="center"
allowSort="true">
地区编号
</div>
<div field="parent_id" headeralign="center"
allowSort="true" >
父地区编号
</div>
<div field="icon" headeralign="center"
allowSort="true">
菜单图标
</div>
</div>
</div>
url="district-districtlist.htm" 调用java 的查询方法(根据不同的语言而定)
后台的java的部分代码
District district = new District();
if(district_id == null)
district.setParent_id("0");
else
district.setParent_id(district_id);
int count = districtService.getDistrictCountByDistrict(district);
List<Map<String,Object>> res =new ArrayList<Map<String,Object>>();
if(count>0){
List<District> districts = districtService.getDistrictDistrictByDistrict(district);
for(District d : districts){
Map<String,Object> r = new HashMap<String,Object>();
r.put("district_id", d.getDistrict_id());
r.put("district_name", d.getDistrict_name());
r.put("parent_id", d.getParent_id());
r.put("isLeaf", false);
r.put("expanded", false);
res.add(r);
}
}
jsonData = PluSoft.Utils.JSON.Encode(res);
return SUCCESS;
根据传入的district_id 是否为null判断是否为第一的加载,null第一次加载,设置默认值0,根节点。
mini UI会在你点击展开的时候,传入自己的idField的值,这里需要接受,本人用的是struts2接收的。
int count = districtService.getDistrictCountByDistrict(district);
判断时候还有下节点如果该节点下有下节节点,那么,就循环遍历加载
没有节点,就返回一个空的结果集给前段