DDR爱好者之家 Design By 杰米
本文支持两种方式的数据,一种为List集合,一种为json字符串。
先来介绍一下后台返回list集合(推荐使用此方法):
控制器代码如下:
public static List<TC_DictionaryInfo> DInfo = new List<TC_DictionaryInfo>(); /// <summary> /// TreeView视图 /// </summary> /// <returns></returns> public ActionResult May(string TypeCode,int parentId) { ViewBag.TypeCode = TypeCode; ViewBag.ParentId = parentId; return View(); } [HttpPost] public ActionResult GetTreeData(string TypeCode,int parentId) { List<TC_DictionaryInfo> DInfo = dbll.GetModelList("TypeCode="+TypeCode); return Json(GetChildNodes(0,new NodeModel(){}, DInfo).nodes); } ///<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; }
视图代码如下:
<script type="text/javascript"> var typecode = @ViewBag.TypeCode; var parentid = @ViewBag.ParentId; $(function() { $.ajax({ type: 'Post', url: '/Type/GetTreeData', data:{ TypeCode:typecode, ParentId:parentid, }, //data: para, dataType: 'json', async: false, success: function (data) { var defaultData = eval(data); //var defaultData = data; $('#treeview4').treeview({ color: "#428bca", data: defaultData }); }, error: function (err) { alert('不好意思,数据忘记带上了。。。'); } }); </scipt>
第二种方式为后台返回json字符串这种方式(此方式为后台拼接json字符串传给前台):
不建议大家采用这种方式,比较容易出错。
public ActionResult May(string TypeCode,int parentId) { ViewBag.TypeCode = TypeCode; ViewBag.ParentId = parentId; return View(); } public ActionResult GetTreeData() { //创建jsondata对象 StringBuilder jsonData = new StringBuilder(); //拼接json字符串 开始{ jsonData.Append("["); //调用GetChildNodes方法,默认传参试为0(0表示根节点菜单选项) jsonData.Append(GetChildNodes(0)); //闭合Node子类数组 ] jsonData.Append("]"); //返回json字符串 return Json(jsonData.ToString()); } /// <summary> /// GetChildNodes方法,此方法使用递归 /// </summary> /// <param name = "parentId" ></ param > /// < returns ></ returns > public string GetChildNodes(int parentId) { //为DInfo赋值(DInfo承载页面所需的值(间接将值传给页面)),查询所有的数据 List<TC_DictionaryInfo> DInfo = dbll.GetModelList(""); //创建ChiidNodeStr变量 StringBuilder ChildNodeStr = new StringBuilder(); //查询符合条件的数据(ParentId=0),DictionaryList接收数据 List<TC_DictionaryInfo> DictionaryList = DInfo.Where(e => Convert.ToInt32(e.ParentId) == parentId).ToList(); //循环DictionaryList为TreeView所需数据分层级(即子类、父类等节点分开) for (int i = 0; i < DictionaryList.Count; i++) { //Nodes数组开始 { ChildNodeStr.Append("{"); //实例化NewNode NodeModel NewNode = new NodeModel(); //分别为字段赋值 NewNode.DicId = DictionaryList[i].DicId; NewNode.text = DictionaryList[i].DICName; NewNode.ParentId = DictionaryList[i].ParentId; //将要显示的字段拼接 ChildNodeStr.Append("text:'" + NewNode.text + "',"); //超链接地址(此处设置为空链接#) ChildNodeStr.Append("href:'#parent1',"); ChildNodeStr.Append("tags:['0']"); //拼接完毕子类分层,去掉最后多余的符号(,) string ChildNodes = GetChildNodes(NewNode.DicId).Trim(','); //判断父类下是否有子类,如果有子类放到Nodes里,如果没有不让他显示为数组形式“[]” if (ChildNodes != string.Empty) { //拼接Json字符串格式 ChildNodeStr.Append(","); ChildNodeStr.Append("nodes:["); ChildNodeStr.Append(ChildNodes); ChildNodeStr.Append("]"); } //结尾加上}, ChildNodeStr.Append("},"); } //返回Json字符串,并将,去掉 return ChildNodeStr.ToString().Trim(','); }
前台代码和上面基本一致,唯一的差别在于
var defaultData = eval(data);
因为我们后台是拼接的json字符串的缘故,我们需要将json字符串转化为json数组(网上下载的基于Bootstrap的JQuery TreeView树形控件仅仅支持json数组),我也是费了很大的劲才找到的。使用MVC+Bootstrap开发TreeView的同学要注意!!!
下面接着给大家介绍基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
以上所述是小编给大家介绍的基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月28日
2024年11月28日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]