jquery easyui 学习笔记

datagrid与Tree组件问题解决
本文解答了datagrid批量删除及数据加载慢的问题,并提供了解决IE8浏览器兼容性的方案,同时详细介绍了如何实现动态生成Tree组件及其数据序列化。

datagrid

Q:批量删除的时候遇到已经选中多个项了但只删除了一条数据?

A:查看是否已经指定了idField并确认idField没有错误

Q:数据加载慢?

A:首先排除获取数据消耗的时间,然后为每个column指定宽度,因为datagrid会自动去为每个列计算宽度占用大量的时间,尤其是在你的列很多的情况下。

Q:页面上的时间类型显示成类型/Date(1283457528340)/这样,怎么处理?

A:使用formatter格式化,例如:

formatter: function (value) {
                            var d = new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10));
                            return d.getFullYear() + "-" + d.getMonth() + "-" + d.getDate();
                        }

 Tree

在后台动态生成Tree的json数据,往往会遇到一个节点包含多个子节点的情况,这个时候就需要构建一个ViewModel来装载数据。

public class CmbTree
    {
        public int id { get; set; }
        public string text { get; set; }
        public string iconCls { get; set; }
        public List<Object> children { get; set; }
    }

然后递归获取数据的集合

[NonAction]
        public List<CmbTree> GetTreeNode(int id)
        {
            List<CmbTree> cmbTreeList = new List<CmbTree>();
            using (PDSContext db = new PDSContext())
            {
                var parentList = db.regionals.Where(p => p.ParentID == id).ToList();
                if (parentList.Count >= 1)
                {
                    foreach (Regional item in parentList)
                    {
                        CmbTree cmbTree = new CmbTree { id = item.ID, text = item.RegionalName, children = new List<Object>() };
                        List<CmbTree> tempList = GetTreeNode(item.ID);
                        if (tempList.Count >= 1)
                        {
                            cmbTree.children.Add(tempList);
                        }
                        else
                        {
                            cmbTree.children = null;
                        }
                        cmbTreeList.Add(cmbTree);
                    }
                }
            }
            return cmbTreeList;
        }

在返回json数据时使用下面这种方式序列化数据,否则使用 return Json(cmbTreeList);返回的json格式easyui-tree无法识别children中的数据。

 public ContentResult SysManage()
        {
            List<CmbTree> cmbTreeList = new List<CmbTree>();
            cmbTreeList = GetTreeNode(0);
            JavaScriptSerializer json = new JavaScriptSerializer();            
            string jsonstring = json.Serialize(cmbTreeList).Replace("[[", "[").Replace("]]", "]");            
            return Content(jsonstring);
        }

 Asp.net MVC jquery easyui 在IE8浏览器下的兼容性

问题1:控制器返回json数据,页面提示下载文件.

解决方法:返回json时加上contentType为text/html.例如 return Json(result,"text/html").

问题2:'rowspan' 为空或不是对象

解决方法:检查 datagrid或者combogrid》columns》每个{field。。。}后面是否有多余的逗号。

问题3:'rows' 为空或不是对象

解决方法:检查返回的数据格式是否正确

  

 

 

转载于:https://www.cnblogs.com/wubh/archive/2013/01/29/2882070.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值