基于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 相关文章推荐
Javascript与flash交互通信基础教程
Aug 07 Javascript
浅析Prototype的模板类 Template
Dec 07 Javascript
JavaScript不刷新实现浏览器的前进后退功能
Nov 05 Javascript
jQuery不使用插件及swf实现无刷新文件上传
Dec 08 Javascript
了不起的node.js读书笔记之例程分析
Dec 22 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
Mar 20 Javascript
AngularJS优雅的自定义指令
Jul 01 Javascript
react.js 获取真实的DOM节点实例(必看)
Apr 17 Javascript
关于jquery layui弹出层的使用方法
Apr 21 jQuery
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
Nov 30 Javascript
详细分析React 表单与事件
Jul 08 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 allow_url_include的应用和解释
2010/04/22 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
js实现小时钟效果
2020/03/25 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
简析Python的闭包和装饰器
2016/02/26 Python
numpy自动生成数组详解
2017/12/15 Python
python实现随机漫步算法
2018/08/27 Python
Django 用户认证组件使用详解
2019/07/23 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
实习生评语
2014/04/26 职场文书
触电现场处置方案
2014/05/14 职场文书
酒店管理专业自荐信
2014/05/23 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
2014年城管工作总结
2014/11/20 职场文书
培训师岗位职责
2015/02/14 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL