基于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基本语法分析说明
Jun 15 Javascript
javascript innerText和innerHtml应用
Jan 28 Javascript
仿微博字符限制效果实现代码
Apr 20 Javascript
javascript删除元素节点removeChild()用法实例
May 26 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
Oct 20 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
Feb 11 Javascript
jQuery操作cookie的示例代码
Jun 05 jQuery
vue基本使用--refs获取组件或元素的实例
Nov 07 Javascript
javascript实现前端成语点击验证优化
Jun 24 Javascript
JavaScript数组类型Array相关的属性与方法详解
Sep 08 Javascript
JavaScript实现商品评价五星好评
Nov 30 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 new static 和 new self详解
2017/02/19 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
wxPython的安装与使用教程
2018/08/31 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
音频处理 windows10下python三方库librosa安装教程
2020/06/20 Python
django使用graphql的实例
2020/09/02 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
小学生学雷锋演讲稿
2014/04/25 职场文书
市场营销专业求职信
2014/06/17 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
2014年财政工作总结
2014/12/10 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
学校运动会加油词
2015/07/18 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
教师反邪教心得体会
2016/01/15 职场文书
导游词之河北野三坡
2019/12/11 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis