這種方式其實還是利用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/deoper web/wa-lo-json/ ,
下面介紹json序列化和反序列化的兩個重要方法:
JsonConvert.SerializeObject(object value)序列化,
它有個重載方法JJson .SerializeObject(object value, params JsonConverter[] converters)。
JsonConvert.DeserializeObject(string value, Type type),反序列化,
它有個重載方法JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] con基本的序列化和反序列化要求。
js中的replace的作用是將特定的符號替換為自己需要的符號。
而這裡replace(//g,'"')的作用是把所有的 / 都替換為「(因為頁面需要的是json字串)。
這樣的話 我們的頁面就可以讀取資料進行顯示了。 BZ還是覺得這種方式比較好一點。
以上所述是小編給大家介紹的基於MVC5和Bootstrap的jQuery TreeView樹形控制(二)之資料支援json字串、list集合,希望對大家有幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對PHP中文網站的支持!
更多jQuery TreeView樹形控制項之資料支援json字串、list集合相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能