基于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 相关文章推荐
对xmlHttp对象方法和属性的理解
Jan 17 Javascript
js中document.write的那点事
Dec 12 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
Jun 01 Javascript
如何使用jquery easyui创建标签组件
Nov 18 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 jQuery
使用vux实现上拉刷新功能遇到的坑
Feb 08 Javascript
详解vue-router 初始化时做了什么
Jun 11 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
Aug 25 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
Sep 04 Javascript
微信小程序动态显示项目倒计时
Jun 20 Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 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
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
php语法检查的方法总结
2019/01/21 PHP
JS正则表达式验证数字代码
2014/01/28 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
javascript实现拼图游戏
2021/01/29 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python动态加载变量示例分享
2014/02/17 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
详解python之协程gevent模块
2018/06/14 Python
对python多线程与global变量详解
2018/11/09 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
人力资源主管岗位职责
2014/01/29 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
白血病募捐倡议书
2014/05/14 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
导游词之阆中古城
2019/12/23 职场文书
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS