日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

MVC4中EasyUI Tree异步加载JSON数据生成树

發(fā)布時(shí)間:2025/3/15 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MVC4中EasyUI Tree异步加载JSON数据生成树 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

1,首先構(gòu)造tree接受的格式化數(shù)據(jù)結(jié)構(gòu)MODEL

? ? ?/// <summary>

? ? ?/// 定義EasyUI樹的相關(guān)數(shù)據(jù),方便控制器生成Json數(shù)據(jù)進(jìn)行傳遞

? ? ?/// </summary>

? ? ?// [DataContract]

??? [Serializable]

? ? public class EasyTreeData

? ? {

??????? /// <summary>

??????? /// ID

??????? /// </summary>

? ? ? ?//? [DataMember]

? ? ? ? public string id { get; set; }

?

??????? /// <summary>

??????? /// 節(jié)點(diǎn)名稱

??????? /// </summary>

?????? // [DataMember]

??????? public string text { get; set; }

???????

??????? /// <summary>

??????? /// 是否展開

??????? /// </summary>

??????? //[DataMember]

??????? public string state? { get; set; }

?

??????? /// <summary>

??????? /// 圖標(biāo)樣式

??????? /// </summary>

?????? // [DataMember]

??????? public string iconCls { get; set; }

?

?

??????? /// <summary>

??????? /// 子節(jié)點(diǎn)集合

?? ?????/// </summary>

????? //? [DataMember]

??????? public List<EasyTreeData> children { get; set; }

???????

??????? /// <summary>

??????? /// 默認(rèn)構(gòu)造函數(shù)

??????? /// </summary>

??????? public EasyTreeData()

??????? {

??????????? this.children = new List<EasyTreeData>();

??????????? this.state = "open";

??????? }

?

??????? /// <summary>

??????? /// 常用構(gòu)造函數(shù)

??????? /// </summary>

??????? public EasyTreeData(string id, string text, string iconCls = "", string state = "open")

??????????? : this()

??????? {

???????? ???this.id = id;

??????????? this.text = text;

??????????? this.state = state;

??????????? this.iconCls = iconCls;

??????? }

?

??????? /// <summary>

??????? /// 常用構(gòu)造函數(shù)

??????? /// </summary>

??????? public EasyTreeData(int id, string text, string iconCls = "", string state = "open", List<EasyTreeData> children=null )

??????????? : this()

??????? {

??????????? this.id = id.ToString();

??????????? this.text = text;

??????????? this.state = state;

??????????? this.iconCls = iconCls;

??????????? this.children = children;

??????? }

? ? }

2,前臺(tái)代碼

2.1,前臺(tái)代碼html代碼

? ? ?<ul id="tt"></ul>

2.2,前臺(tái)代碼腳本

? ? <script type="text/javascript">

?? ? ? ? $(function () {

??????????? $('#tt').tree({

??????????????? checkbox: false,

??????????????? url: '/Cultivate/GetUserTreeJson',

??????????????? onClick: function (node) {

???????????????????? alert(node.id);

??????????????? }

??????????? });

??????? });

? ?</script>

3,控制器(Cultivate)的方法GetUserTreeJson'

3.1,控制器(Cultivate)的方法GetUserTreeJson代碼

? ? ? ?[HttpPost]

??????? public ActionResult GetUserTreeJson()

??????? {

??????????? int PID = -1;

??????????? List<EasyTreeData> treeList = new List<EasyTreeData>();

??????????? if (PID == -1)

??????????? {

??????????????? var list = (from p in db.cultivates

??????????????????????????? where p.NodePID == PID

??????????????????????????? orderby p.NodeID

??????????????????????????? select p).ToList();

??????????????? foreach (cultivate info in list)

??????????????? { var child = (from p in db.cultivates

?????????????????????????????? where p.NodePID == info.NodeID

?????????????????????????????? orderby p.NodeID

?????????????????????????????? select p).ToList();

??????????????? if (child.Count ==0)

??????????????? {

??????????????????? treeList.Add(new EasyTreeData(info.NodeID, info.NodeName, "icon-user"));

???????? ???????}

??????????????? else

??????????????? {

??????????????????? treeList.Add(new EasyTreeData(info.NodeID, info.NodeName, "icon-user","open", GetUserTreeJson2(info.NodeID)));

????????????????

??????????????? }

??????????????? }

??????????? }????

??? ????????string json = ToJson(treeList);

??????????? return Content(json);

??????? }

3.2,如果有N級(jí)菜單循環(huán)代碼

? ? ? ? private List<EasyTreeData> GetUserTreeJson2( int PID)

????????? {

???????????? List<EasyTreeData> treeList = new List<EasyTreeData>();

????????????? var list = (from p in db.cultivates

????????????????????????? where p.NodePID == PID

????????????????????????? orderby p.NodeID

????????????????????????? select p).ToList();

????????????? foreach (cultivate info in list)

????????????? {

????????????????? var child = (from p in db.cultivates

?????????????????????????????? where p.NodePID == info.NodeID

?????????????????????????????? orderby p.NodeID

?????????????????????????????? select p).ToList(); ;

????????????????? if (child.Count == 0)

????????????????? {

??? ??????????????????treeList.Add(new EasyTreeData(info.NodeID, info.NodeName, "icon-user"));

????????????????? }

????????????????? else

????????????????? {

????????????????????? treeList.Add(new EasyTreeData(info.NodeID, info.NodeName, "icon-user", "closed", GetUserTreeJson2(info.NodeID)));

????????????????? }

????????????? }

????????????? return treeList;

????????? }

??????

3.3,Json代碼生成。

? ? ? ?protected string ToJson(object obj)

??????? {

??????????? string jsonData = (new JavaScriptSerializer()).Serialize(obj);

??????????? return jsonData;

??????? }

?

轉(zhuǎn)載于:https://www.cnblogs.com/lgx5/p/6189062.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的MVC4中EasyUI Tree异步加载JSON数据生成树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。