基于MVC5和Bootstrap的jQuery TreeView樹形控件(二)之?dāng)?shù)據(jù)支持json字符串、list集合
在上篇給大家介紹了基于MVC5和Bootstrap的jQuery TreeView樹形控件(一)之?dāng)?shù)據(jù)支持json字符串、list集合。
這種方式其實(shí)還是利用list集合的方式傳給前臺(tái),只不過在前臺(tái)做了一些小小的變化,而控制器代碼也進(jìn)行了部分的優(yōu)化,值的一提的是:沒用的ajax前后臺(tái)交互舍棄掉了。
控制器代碼如下:
//實(shí)例化公共靜態(tài)字典表集合
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:不再是三個(gè)方法而簡(jiǎn)化為兩個(gè)方法(幾乎沒什么變動(dòng))。
前臺(tái)代碼如下:
var data='@JsonConvert.SerializeObject( ViewBag.data)'.replace(/"/g,'"');
$(function() {
$('#treeview4').treeview({
color: "#428bca",
data: data,
onNodeSelected: function(event, data) {
alert(data);
}
});
PS:這里用到了.NET 下開源的json格式序列號(hào)和反序列化的類庫
https://www.ibm.com/developerworks/cn/web/wa-lo-json/ ,
下面介紹json序列化和反序列化的兩個(gè)重要方法:
JsonConvert.SerializeObject(object value)序列化,
它有個(gè)重載方法JsonConvert.SerializeObject(object value, params JsonConverter[] converters)。
JsonConvert.DeserializeObject(string value, Type type),反序列化,
它有個(gè)重載方法JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)
這兩個(gè)方法可以實(shí)現(xiàn)基本的序列化和反序列化要求。
js中的replace的作用是將特定的符號(hào)替換為自己需要的符號(hào)。
而這里replace(/\/g,'"')的作用是把所有的 / 都替換為“(因?yàn)轫撁嫘枰氖莏son字符串)。
這樣的話 我們的頁面就可以讀取數(shù)據(jù)進(jìn)行顯示了。BZ還是感覺這種方式更好一點(diǎn)。
以上所述是小編給大家介紹的基于MVC5和Bootstrap的jQuery TreeView樹形控件(二)之?dāng)?shù)據(jù)支持json字符串、list集合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 基于MVC5和Bootstrap的jQuery TreeView樹形控件(一)之?dāng)?shù)據(jù)支持json字符串、list集合
- jquery實(shí)現(xiàn)點(diǎn)擊TreeView文本父節(jié)點(diǎn)展開/折疊子節(jié)點(diǎn)
- ASP.NET中基于JQUERY的高性能的TreeView補(bǔ)充
- 打造基于jQuery的高性能TreeView(asp.net)
- 為jQuery.Treeview添加右鍵菜單的實(shí)現(xiàn)代碼
- Jquery.TreeView結(jié)合ASP.Net和數(shù)據(jù)庫生成菜單導(dǎo)航條
- jQuery 學(xué)習(xí)第六課 實(shí)現(xiàn)一個(gè)Ajax的TreeView
- 選擇TreeView控件的樹狀數(shù)據(jù)節(jié)點(diǎn)的JS方法(jquery)
- jQuery 樹形結(jié)構(gòu)的選擇器
- jQuery treeview樹形結(jié)構(gòu)應(yīng)用
相關(guān)文章
jQuery源碼分析-03構(gòu)造jQuery對(duì)象-源碼結(jié)構(gòu)和核心函數(shù)
jQuery源碼分析-03構(gòu)造jQuery對(duì)象-源碼結(jié)構(gòu)和核心函數(shù),需要的朋友可以參考下。2011-11-11
jquery 簡(jiǎn)單應(yīng)用示例總結(jié)
jquery 想必大家早已如雷貫耳,本文整理了一些在實(shí)際應(yīng)用中比較常見的功能片段,感興趣的朋友可以學(xué)習(xí)下哦,需要改進(jìn)的地方希望大家不惜指教2013-08-08
jQuery實(shí)現(xiàn)的鼠標(biāo)拖動(dòng)畫矩形框示例【可兼容IE8】
這篇文章主要介紹了jQuery實(shí)現(xiàn)的鼠標(biāo)拖動(dòng)畫矩形框,結(jié)合實(shí)例形式分析了jQuery基于事件響應(yīng)及頁面元素屬性動(dòng)態(tài)操作實(shí)現(xiàn)的圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
JQuery自定義事件的應(yīng)用 JQuery最佳實(shí)踐
本文主要介紹JQuery框架里面支持的自定義事件模型,通過實(shí)例說明什么時(shí)候可以利用事件模型進(jìn)行面向?qū)ο蟮腏S編程,以及利用“帶命名空間的事件處理函數(shù)”來避免unbind時(shí)影響別的事件訂閱。2010-08-08
Hallo.js基于jQuery UI所見即所得的Web編輯器
Hallo.js是一個(gè)簡(jiǎn)單的富文本編輯器,基于jQuery UI的部件,利用HTML5的contentEditable功能實(shí)現(xiàn)了即時(shí)編輯功能,其主要目的是為了提供良好的書寫體驗(yàn),對(duì)Hallo.js感興趣的小伙伴們可以參考一下2016-01-01

