• kendo treeview checkbox初始化选中问题,没解决,暂时记录下


    想做带有checkbox的tree,由于项目一直用kendo ui for mvc,感觉 牛逼的kendo肯定有tree。结果碰到了选中的问题。

    无法根据后台传来的IsChecked字段来设置  tree的选中状态。暂时不知道原因。

    后台 接口

      #region 地区 tree
            public JsonResult GetAreasTree(int? id)
            {
                //id = id.GetValueOrDefault();
                //List<Area> allAreas = _commonService.GetAreas().ToList();
                //List<int> allCheckedItemIds = _commonService.GetUserAreaIdNew(UserId());
                //allCheckedItemIds.Add(3);
                //allCheckedItemIds.Add(101);
                //var areaTreeData = GetChildren(allAreas, allCheckedItemIds,0);
                var areaTreeData = new List<KendoTreeModel>();
                areaTreeData.Add(new KendoTreeModel()
                {
                    Id = 1,
                    Name = "大陆",
                    IsChecked = false,
                    Expanded = false,
                    Items = new List<KendoTreeModel>
                    {
                        new KendoTreeModel()
                        {
                            Id = 11,
                            Name = "huabei",
                            IsChecked = true,
                            Expanded = false
                        },
                        new KendoTreeModel()
                        {
                            Id = 12,
                            Name = "huanan",
                            IsChecked = false,
                            Expanded = false
                        }
                    }
                });
                return Json(areaTreeData, JsonRequestBehavior.AllowGet);
            }
    
    
            private List<KendoTreeModel> GetChildren(List<Area> allItems,List<int> allCheckedItemIds, int parentId)
            {
                List<KendoTreeModel> models = new List<KendoTreeModel>();
                var sonItems = allItems.FindAll(c => c.ParentId == parentId).OrderBy(c => c.SortNumber);
                foreach (var son in sonItems)
                {
                    models.Add(new KendoTreeModel()
                    {
                        Id = son.Id,
                        Name = son.Text,
                        Expanded = son.ParentId.GetValueOrDefault() != 1,
                        IsChecked = allCheckedItemIds.Contains(son.Id),
                        Items = GetChildren(allItems, allCheckedItemIds, son.Id)
                    });
                }
                return models;
            }
            #endregion
    

      

     public class KendoTreeModel
        {
            public int Id { set; get; }
            public int ParentId { set; get; }
    
            public string Name { set; get; }
            public bool IsChecked { set; get; }
            public bool Expanded { set; get; }
            public List<KendoTreeModel> Items { set; get; }
        }

    前端 代码

    <div id="treeview" class="demo-section"></div>
    

      

     var homogeneous = new kendo.data.HierarchicalDataSource({
                transport : {
                    read : {
                        url :  "@Url.Action("GetAreasTree", "CommonAjax")",
                        dataType : "json",
                        data: function() {
                            var id= 0;
                            return { id: id}
                        }
                    }
                },
                schema : {
                    model : {
                        id : "Id",
                        children:"Items",
                        expanded: "Expanded",
                        checked: "IsChecked"
                    }
                }
            });
          
            $("#treeview").kendoTreeView({
                loadOnDemand : true,
                dataSource : homogeneous,
                dataTextField: "Name",
                checkboxes : {
                    checkChildren: true
                }
            });
    

      

  • 相关阅读:
    mysql更新语句中的safe_mode
    MySQL数据类型详解
    刚更新完版本就炸了:java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream
    微信支付分创建支付分订单+签名+验签
    根据序列号加密生产4*4的密码,如:X9PL-TERY-NOZN-GMF1
    对称加密:AES
    MySQL按中文排序
    腾讯云COS分片上传
    Linux中jar包指定端口、配置文件启动并记录日志
    Java8新特性两个关联集合合并成父子级
  • 原文地址:https://www.cnblogs.com/taoshengyujiu/p/10041739.html
Copyright © 2020-2023  润新知