基于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 解析json的代码
Dec 16 Javascript
jquery 事件对象属性小结
Apr 27 Javascript
本地对象Array的原型扩展实现代码
Dec 04 Javascript
jquery取消选择select下拉框示例代码
Feb 22 Javascript
基于jQuery实现表格的排序
Dec 02 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
Dec 07 Javascript
js图片轮播插件的封装
Jul 21 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
Dec 05 jQuery
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
Nov 12 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
Mar 15 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
Apr 23 Javascript
深入理解Antd-Select组件的用法
Feb 25 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强制运行广告的方法
2014/12/01 PHP
php fread读取文件注意事项
2016/09/24 PHP
PDO::getAttribute讲解
2019/01/28 PHP
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
2016/12/14 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
生产现场工艺工程师岗位职责
2013/11/28 职场文书
实习教师自我鉴定
2013/12/12 职场文书
个人自我评价分享
2013/12/20 职场文书
门店业绩提升方案
2014/06/08 职场文书
红旗渠导游词
2015/02/09 职场文书
个人年终总结范文
2015/03/09 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
SQLServer之常用函数总结详解
2021/08/30 SQL Server