成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? 基于MVC5和Bootstrap的jQuery TreeView樹形控件(一)之數據支持json字符串、list集合
全站頭部文字 我要出現在這里
基于MVC5和Bootstrap的jQuery TreeView樹形控件(一)之數據支持json字符串、list集合 1020 2024-02-22   

本文支持兩種方式的數據,一種為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集合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對綠夏網網站的支持!


主站蜘蛛池模板: 魔界 电影| 厕所英雄| 大学生做爰视频直播| 夜生活女王之霞姐| 三峡游轮重庆到宜昌4天三夜| 穆总的天价小新娘短剧在线观看| 大追捕在线完整免费观看| 河南卫视节目预告| 清淮河| 大侠霍元甲演员表| 李慧珍演的电影有哪些| 日本电影部长| 守卫者2| 离歌吉他谱| 汽球造型| 林景云李海海| 追捕演员表| 我和我的祖国钢琴谱完整版 | 雾里简谱| 一千零一夜之梦中人| 姿三四郎电视剧全集| 跟班服务| infrustructure| 黑暗圣经在线观看| 好男人电视剧| 浙江卫视今日节目表| 每周食品安全排查治理报告表| 护航 电影| 超级大富豪| 哪吒电影1| 调教 打屁股 鞭打 拍击视频| 2024新款微信图片| 特殊的按摩| 欢乐的牧童钢琴谱| 赤月| 色天使美国| 妈妈的脊背简谱| 诗歌繁星| 中山电视台| 睡衣派对| 尸语者 电视剧|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103