KenDoui实现无限级导航菜单
来源:互联网 发布:android软件开发工具包 编辑:程序博客网 时间:2024/06/06 12:54
这导航菜单花费了好多时间,在此记录下来,希望对有需要的朋友提供一些帮助,好了 废号不多说。。。。。
第一步,创建数据库
第二步,编写jsp页面代码
<body>
<ul id="menu"></ul>
</body>
<script type="text/javascript">
//1.创建一个空菜单
var menu = $("#menu").kendoMenu({}).data("kendoMenu");
//2.创建一个数据源
var ds = new kendo.data.DataSource({
transport : {//传输读取方式
read : {
url : "<%=basePath %>kendomenu/findMenu.spring",
dataType : "json"
}
},
schema : {
data : function(data) {
//4.将得到的数据源添加到菜单中
menu.append(data);
}
}
});
//3.手动触发数据源的read
ds.read();
</script>
第三步: 编写后台代码, 我这用的是ssm框架弄的
1、接口的方法就2个
2、Mapper.xml
3、dao层
4、alldao类也贴出来吧,里面其实就是一个管理到的一个总类,方便进行调用
第四、sercice层
allservice类
第五、controller层
@Controller
@RequestMapping("kendomenu")
public class KendoMenuAction {
@Autowired
private AllService allservice;
@RequestMapping("findMenu")
public String findAllMenu(HttpServletResponse response) throws IOException {
JSONArray jsonArray = new JSONArray();
// 查询所有菜单
List<kendoMenu> list = allservice.getKendoMenuService().findAllMenus();
for (int i = 0; i < list.size(); i++) {
JSONObject jsonObject = new JSONObject();
kendoMenu kendoMenu = list.get(i);
if (kendoMenu.getItems().doubleValue() == 0) {
jsonObject.put("id", kendoMenu.getId());
jsonObject.put("items", kendoMenu.getItems());
jsonObject.put("text", kendoMenu.getText());
jsonObject.put("url", kendoMenu.getUrl());
// 获得子节点
List<kendoMenu> chid = getChild(list.get(i).getId());
if (chid != null && chid.size() != 0) {
jsonObject.put("items", chid);
}
jsonArray.add(jsonObject);
}
}
// 输出信息到页面
response.setContentType("application/json;charset=UTF-8");
response.getWriter().println(jsonArray.toString());
return null;
}
// 根据父节点id获得相应的子节点
public List<kendoMenu> getChild(BigDecimal itmes) {
JSONArray jsonArrayChid = new JSONArray();
List<kendoMenu> list = allservice.getKendoMenuService().getNodeById(itmes); // 查询该父节点的所有子节点
for (int i = 0; i < list.size(); i++) {
JSONObject jsonObjectChid = new JSONObject();
kendoMenu kendoMenu2 = list.get(i);
jsonObjectChid.put("id", kendoMenu2.getId());
jsonObjectChid.put("it", kendoMenu2.getItems());// 这名称不能写items因为kendoui会当做这个父节点下有子节点
jsonObjectChid.put("text", kendoMenu2.getText());
jsonObjectChid.put("url", kendoMenu2.getUrl());
List<kendoMenu> chid2 = getChild(list.get(i).getId());// 在次查询该子节点下是否还有子节点
if (chid2 != null && chid2.size() != 0) {// 非空判断,不判断会多添加一个空的items
jsonObjectChid.put("items", chid2);
}
jsonArrayChid.add(jsonObjectChid);
}
return jsonArrayChid;
}
}
到此就完成了 ,实现的菜单如下
- KenDoui实现无限级导航菜单
- Android 自定义横向ListView实现无限级菜单导航类目
- JQ 实现无限分级导航菜单
- 无限级标准JS树状导航菜单
- 递归显示无限级 导航菜单
- 递归显示无限级 导航菜单
- CSS+JS实现结构化无限级导航菜单列表(直接调用)
- CSS实现无限级菜单
- 实现基于 Ajax 的无限级菜单
- 实现基于Ajax的无限级菜单
- 实现基于Ajax的无限级菜单
- 实现基于Ajax的无限级菜单
- 实现基于Ajax的无限级菜单
- 实现基于Ajax的无限级菜单
- 实现基于Ajax的无限级菜单
- 实现基于Ajax的无限级菜单
- 实现基于Ajax的无限级菜单
- 实现基于Ajax的无限级菜单
- 使用freemarker静态化
- Eclipse如何集成SVN?
- 中国高铁招标幕后:中方代表摔茶杯镇住日企
- Sublime Text3 + Golang搭建开发环境
- 小技巧:Mac系统调整Launchpad图标大小
- KenDoui实现无限级导航菜单
- mysql开启自启动
- 给GridView设置分页格式:首页、上一页、下一页、尾页。
- jango.contrib.sessions-SessionBase
- Makefile && subdir template
- GitHub详细教程
- U3D控制绘制顺序
- 【poj1061】青蛙的约会 exgcd解同余方程
- android混淆打包