博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC+ZTree大数据异步树加载
阅读量:5108 次
发布时间:2019-06-13

本文共 2322 字,大约阅读时间需要 7 分钟。

实例部分:

首先是为ZTree提供的数据规范,定义一个标准的接口,这样对于前台调用是清楚的,简单的,因为它返回的JSON数据将与ZTree默认的数据元素保持一致

///     /// ZTree数据结构    ///     public interface IZTree    {        ///         /// 节点ID        ///         /// 节点名称        ///         string name { get; set; }        ///         /// 父ID        ///         int pId { get; set; }        ///         /// 是否有子节点        ///         bool isParent { get; set; }    }    public class Node : IZTree    {        #region IZTree 成员        ///         /// 节点ID        ///         public int id { get; set; }        ///         /// 节点名称        ///         public string name { get; set; }        ///         /// 父ID        ///         public int pId { get; set; }        ///         /// 是否有子节点        ///         public bool isParent { get; set; }        #endregion    }

 

其次是MVC这边,会前台页面提供一个GET请求的方法,用来根据父ID,得到它的一级子节点列表

///         /// 得到指定ID的子节点列表,并序列化为JSON串        ///         ///         /// 
public string AsyncGetNodes(int? id) { return nodearr.Where(i => i.pId == (id ?? 0)).ToJson(); }

下面是JSON的功能类,网上有很多

public static class JsonHelper    {        ///          /// 返回对象序列化         ///          /// 源对象         /// 
json数据
public static string ToJson(this object obj) { JavaScriptSerializer serialize = new JavaScriptSerializer(); return serialize.Serialize(obj); } /// /// 控制深度 /// /// 源对象 /// 深度 ///
json数据
public static string ToJson(this object obj, int recursionDepth) { JavaScriptSerializer serialize = new JavaScriptSerializer(); serialize.RecursionLimit = recursionDepth; return serialize.Serialize(obj); } public static object ParseFromJson
(string szJson) { T obj = Activator.CreateInstance
(); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); return (T)serializer.ReadObject(ms); } } }

OK,现在我们回到前台,看一下前台页面是如何与后台方法进行通讯的

 下面是HTML代码

    好了,我们运行程序,效果就出来了,呵呵!

    经读者提意,放了一个效果图:

    转载于:https://www.cnblogs.com/sjqq/p/7530649.html

    你可能感兴趣的文章
    一句话说清分布式锁,进程锁,线程锁
    查看>>
    Hash和Bloom Filter
    查看>>
    python常用函数
    查看>>
    FastDFS使用
    查看>>
    服务器解析请求的基本原理
    查看>>
    [HDU3683 Gomoku]
    查看>>
    【工具相关】iOS-Reveal的使用
    查看>>
    数据库3
    查看>>
    存储分类
    查看>>
    下一代操作系统与软件
    查看>>
    【iOS越狱开发】如何将应用打包成.ipa文件
    查看>>
    [NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
    查看>>
    Yii2 Lesson - 03 Forms in Yii
    查看>>
    Python IO模型
    查看>>
    Ugly Windows
    查看>>
    DataGridView的行的字体颜色变化
    查看>>
    Java再学习——关于ConcurrentHashMap
    查看>>
    如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
    查看>>
    局域网内手机访问电脑网站注意几点
    查看>>
    c++ STL
    查看>>