前言:

  第一次学习使用MVC框架,找了个练手项目,加载zTree树小控件。下面我就一步步说明我这次练手的经历以记录。如果有什么错误,希望各位大神帮忙指正,谢谢。

第一步:

  利用VS2010新建一个MVC4项目TestDemo(为了开发ASP.NET MVC应用,可能你需要先下载并安装ASP.NET MVC4框架),然后在Controllers文件夹下创建DefaultController.cs文件,然后打开该文件,鼠标指向Index函数右键创建对应View视图,它会默认在Views文件下创建Default文件并创建对应视图。

第二步:

  在刚创建的Index视图中加载相应所需的js以及css文件,并且配置zTree信息。代码如下:

@{
Layout = null;
} <!DOCTYPE html>
<link href="~/Scripts/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
<script src="~/Scripts/js/jquery-1.4.4.min.js"></script>
<script src="~/Scripts/js/jquery.ztree.all.js"></script>
<script src="~/Scripts/js/jquery.ztree.all.min.js"></script>
<script>
var setting4 = {
data: {
simpleData: {
enable: true,
idKey: "id",
pIdKey: "pId",
rootPId:
}
},
async: {
//异步加载
enable: true,
url: "/Default/AsyncGetNodes",
autoParam: ["id", "name", "pId"]
},
callback: {
beforeExpand: beforeExpand,
onAsyncSuccess: onAsyncSuccess,
onAsyncError: onAsyncError,
onClick: onClick
}
};
function beforeExpand(treeId, treeNode) {
if (!treeNode.isAjaxing) {
return true;
} else {
alert("zTree 正在下载数据,请稍后展开节点。。。");
return false;
}
}
function onAsyncSuccess(event, treeId, treeNode, msg) { }
function onAsyncError() {
alert("数据加载失败");
}
function onClick(e, treeId, treeNode) { }
</script>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div id="navTree">
<ul id="tree" class="ztree"></ul>
</div>
</body>
</html>

  

第三步:

  ajax请求创建树,这个地方从后台传回的json数据,需要两次eval装换方可成json对象,这个地方一直困惑了我很久。希望有大神可以解答为神马。谢谢哦。

$(function () {
createTree();
})
function createTree() {
$.ajax({
url: "/Default/AsyncGetNodes",
data: { id: },
type: 'Get',
dataType: "text",
success: function (data) {
alert(data);
data = eval('(' + data + ')');
alert(data);
data = eval('(' + data + ')');
alert(data);
$.fn.zTree.init($("#tree"), setting4, data);
},
error: function (msg) {
alert("数据加载失败!" + msg);
}
});
}

以及控制器AsyncGetNodes的相关源码

public ActionResult AsyncGetNodes()
{
string mmResult = App.DtTozTree_XYS("", , true, "", true);
return Json(mmResult, JsonRequestBehavior.AllowGet);
}

后台传回data数据,第一次alert,第一次eval转换并alert,第二次eval装换并alert

虽然转换多次,终归想要的结果出来了,当然这中间再webconfig配置oracle数据信息,以及刚在的App函数,这个每个人形成各异,这里我就不在赘述,寥寥数言,希望各位指点。

最新文章

  1. 『.NET Core CLI工具文档』(二).NET Core 工具遥测(应用信息收集)
  2. Qml 写的弹出层控件
  3. IOS上解决内存越界访问问题
  4. C语言输出格式总结
  5. [译]- 6-1 排列窗体上的控件(Laying Out Widgets on a Form)
  6. PHP上传文件详解 错误提示
  7. SpringSecurity相关配置【SpringSecurityConfig】
  8. scala高级内容(二) - Implicit
  9. LeetCode: Palindrome Partitioning [131]
  10. 将git版本号编译进程序
  11. 20道Java面试必考题
  12. 动态SQL中不同变量的写法总结
  13. Android开发指南--0 总览
  14. OAuth 2.0 认证的原理与实践
  15. struts2框架搭建学习遇到的问题
  16. js浮点数的加减乘除
  17. python json.dumps()函数输出json格式,使用ensure_ascii参数对中文输入的支持
  18. React项目中使用HighCharts
  19. [Hibernate] 通过 properties 类和 hql 语句进行动态查询
  20. 对JavaScript垃圾回收机制的理解?

热门文章

  1. C# 事务之SqlTransaction
  2. CF #228 div1 B. Fox and Minimal path
  3. JS自定义对象,正则表达式,JQuery中的一些知识点
  4. pl/sql 笔记之存储过程、函数、包、触发器(下)
  5. python在接口测试的实际应用
  6. IIS发布mvc程序遇到的HTTP错误 403.14-Forbidden解决办法
  7. hdu1512 Monkey King
  8. SpringMVC中的session用法及细节记录
  9. window系统下sbt的安装
  10. Linux 零拷贝技术