基于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 强制刷新页面的实现代码
Dec 13 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
Feb 05 Javascript
js 实现菜单上下显示附效果图
Nov 21 Javascript
网页实时显示服务器时间和javscript自运行时钟
Jun 09 Javascript
JavaScript判断DIV内容是否为空的方法
Jan 29 Javascript
浏览器复制插件zeroclipboard使用指南
Mar 26 Javascript
javascript实现列表切换效果
May 02 Javascript
Bootstrap实现翻页效果
Nov 27 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
vue中axios的封装问题(简易版拦截,get,post)
Jun 15 Javascript
JavaScript事件对象深入详解
Dec 30 Javascript
vue v-on:click传递动态参数的步骤
Sep 11 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函数的常用方法及注意之处小结
2011/07/10 PHP
php定时执行任务设置详解
2015/02/06 PHP
php如何获取文件的扩展名
2015/10/28 PHP
使用正则替换变量
2007/05/05 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
python使用mysql数据库示例代码
2017/05/21 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
打架检讨书500字
2014/01/29 职场文书
考试没考好检讨书
2014/01/31 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
保密工作承诺书
2014/08/29 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
python 单机五子棋对战游戏
2022/04/28 Python
mysql 排序失效
2022/05/20 MySQL