基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合


Posted in Javascript onAugust 11, 2016

在上篇给大家介绍了基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合。

这种方式其实还是利用list集合的方式传给前台,只不过在前台做了一些小小的变化,而控制器代码也进行了部分的优化,值的一提的是:没用的ajax前后台交互舍弃掉了。

控制器代码如下:

//实例化公共静态字典表集合
public static List<TC_DictionaryInfo> DInfo = new List<TC_DictionaryInfo>();
/// <summary>
/// TreeView视图
/// </summary>
/// <returns></returns>
public ActionResult May(string TypeCode)
{
ViewBag.TypeCode = TypeCode;
List<TC_DictionaryInfo> DInfo = dbll.GetModelList("TypeCode=" + TypeCode);
List<NodeModel> list = GetChildNodes(0, new NodeModel() { }, DInfo).nodes;
ViewBag.data = list;
}
///<summary>
/// GetChildNodes方法,此方法使用递归
/// </summary>
/// <param name="parentId"></param>
/// <returns></returns>
public NodeModel GetChildNodes(int parentId, NodeModel childnodestr, List<TC_DictionaryInfo> DInfo)
{
List<TC_DictionaryInfo> DictionaryList = DInfo.Where(e => Convert.ToInt32(e.ParentId) == parentId).ToList();
for (int i = 0; i < DictionaryList.Count; i++)
{
NodeModel NewNode = new NodeModel();
NewNode.DicId = DictionaryList[i].DicId;
NewNode.text = DictionaryList[i].DICName;
NewNode.ParentId = DictionaryList[i].ParentId;
childnodestr.nodes.Add(NewNode);
GetChildNodes(NewNode.DicId, NewNode, DInfo);
}
return childnodestr;
}

PS:不再是三个方法而简化为两个方法(几乎没什么变动)。

前台代码如下:

var data='@JsonConvert.SerializeObject( ViewBag.data)'.replace(/"/g,'"');
$(function() {
$('#treeview4').treeview({
color: "#428bca",
data: data,
onNodeSelected: function(event, data) {
alert(data);
}
});

PS:这里用到了.NET 下开源的json格式序列号和反序列化的类库

https://www.ibm.com/developerworks/cn/web/wa-lo-json/ ,

下面介绍json序列化和反序列化的两个重要方法:

JsonConvert.SerializeObject(object value)序列化,

它有个重载方法JsonConvert.SerializeObject(object value, params JsonConverter[] converters)。

JsonConvert.DeserializeObject(string value, Type type),反序列化,

它有个重载方法JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)

这两个方法可以实现基本的序列化和反序列化要求。

js中的replace的作用是将特定的符号替换为自己需要的符号。

而这里replace(/\/g,'"')的作用是把所有的 / 都替换为“(因为页面需要的是json字符串)。

这样的话 我们的页面就可以读取数据进行显示了。BZ还是感觉这种方式更好一点。

以上所述是小编给大家介绍的基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于jQuery UI CSS Framework开发Widget的经验
Aug 21 Javascript
Javascript图像处理—平滑处理实现原理
Dec 28 Javascript
php读取sqlite数据库入门实例代码
Jun 25 Javascript
JS来动态的修改url实现对url的增删查改
Sep 05 Javascript
js实现点击获取验证码倒计时效果
Jan 28 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
Nov 23 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
Aug 27 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
Feb 27 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
May 09 Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 Javascript
express如何解决ajax跨域访问session失效问题详解
Jun 20 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
Aug 11 #Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
Aug 11 #Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
Aug 11 #Javascript
jQuery多个版本和其他js库冲突的解决方法
Aug 11 #Javascript
JS获取字符串实际长度(包含汉字)的简单方法
Aug 11 #Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
Aug 11 #Javascript
JavaScript性能优化总结之加载与执行
Aug 11 #Javascript
You might like
PHP 日期加减的类,很不错
2009/10/10 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
PHP常用处理静态操作类
2015/04/03 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
Python中turtle作图示例
2017/11/15 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
Python字符串三种格式化输出
2020/09/17 Python
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
青年文明号服务承诺
2014/03/31 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
获奖感言范文
2015/07/31 职场文书
Nginx 匹配方式
2022/05/15 Servers