基于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 相关文章推荐
jquery.validate使用攻略 第二部
Jul 01 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
Feb 27 Javascript
js树插件zTree获取所有选中节点数据的方法
Jan 28 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
Sep 17 Javascript
怎么引入(调用)一个JS文件
May 26 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
Jun 06 Javascript
用js实现before和after伪类的样式修改的示例代码
Sep 07 Javascript
微信小程序实现tab切换效果
Nov 21 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
Dec 04 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 Javascript
vue+echarts实现多条折线图
Mar 21 Vue.js
基于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抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
PHP chop()函数讲解
2019/02/11 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
python requests使用socks5的例子
2019/07/25 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
《夹竹桃》教学反思
2014/04/20 职场文书
给医院的感谢信
2015/01/21 职场文书
郭明义电影观后感
2015/06/08 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
导游词之山海关
2019/12/10 职场文书
Mysql Show Profile
2021/04/05 MySQL
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
cypress测试本地web应用
2022/06/01 Javascript
Django框架模板用法详解
2022/06/10 Python