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
            }
        });

  

原文地址:https://www.cnblogs.com/taoshengyujiu/p/10041739.html

时间: 2024-10-08 12:18:55

kendo treeview checkbox初始化选中问题,没解决,暂时记录下的相关文章

今天搞log4net插入错误日志去mysql数据库的时候出现了点问题,已解决。记录下解决方案

先上图 配置log4net的时候要填这项,可是这个value我不知道啊.....上图里的value是我用下面的方法获取的 MySqlConnection con = new MySqlConnection(strcon); Type t = con.GetType(); string ConnectType/*这就是上图里的value了,这个value在webconfig里面很多地方都有用到的*/ = t.AssemblyQualifiedName; 反射....

解决html中刷新页面后checkbox还选中的问题

今天在测试代码时候发现在电脑360浏览器和手机浏览器中的checkbox选中后,按f5刷新页面后checkbox还是选中的. 解决方法是:将 autocomplete="off"  这个配置在from上或者你的checkbox上. <form autocomplete="off"> <input id="butAll" style="vertical-align:middle;" type="che

android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法

今天在做一个含有CheckBox 的ListView时,发现当初始化CheckBox的状态后, 滚动ListView,其中CheckBox 的选中状态不停的发生变化.最后发现原因是 ListView滚动时自动调用 onCheckedChanged 导致的.在查看了各种博客的解决办法后,国外的网站上有一个办法解决了我的问题.写下来分享一下. 在自定义Adapter的getView方法中这样写就行了. Java代码   //在初始化CheckBox状态和设置状态变化监听事件之前,先把状态变化监听事件

JQuery判断checkbox是否选中-批量

在html的checkbox里,选中的话会有属性checked="checked". 如果用一个checkbox被选中,alert这个checkbox的属性"checked"的值alert($"#xxx".attr("checked")),会打印出"true",而不是"checked"! 如果没被选中,打印出的是"undefined".觉得很奇怪是吗?继续看下去- 不

jquery 判断checkbox 是否选中

这是一个蛋疼的节奏,以前写的代码现在失效了. jquery 判断checkbox 是否被选中,刚开始我是这样写的,而且没问题 $("#ziduana").attr("checked")=="checked" 后来竟然失效了, 后来试了 $("ziduana").attr("checked")==true  , $("#ziduana").is(":checked")

jquery中checkbox全选失效的解决方法

这篇文章主要介绍了jquery中checkbox全选失效的解决方法,需要的朋友可以参考下 如果你使用jQuery 1.6 ,代码if ( $(elem).attr(“checked”) ),将获得一个属性(attribute) ,它不改变该复选框被选中和选中.它只是用来存储默认或选中属性的初始值.为了保持向后兼容,.attr() 方法从 jQuery 1.6.1+ 开始除了返回属性值外,还会更新 property 属性,因此 boolean attribute(布尔属性)不需要通过 .prop(

TreeView checkbox

C# TreeView checkbox 联动打勾 #region 将树的checkbox选中 private void setNodeTrue(Node selNode) { Node node = selNode.Parent; if (node != null) { node.CheckState = CheckState.Checked; setNodeTrue(node); } } #endregion #region 将树的checkbox选中 private void setNod

jquery获取checkbox是否选中

在使用jquery的过程中,发现了一个比较特别的属性,那就是 input标签的 checkbox的 是否选中状态 在jquery 1.6 + 以后,checkbox的选中状态的获取不在是直接$(XXX).attr("checked"),而是prop(name|properties|key,value|fn) 具体事例: if($('input[name="iscknotrans"]').prop("checked")){ alert("

radio与checkbox的选中事件

<一>判断checkbox的选中事件 var result=$(this).find("input[type='checkbox']").prop("checked"); result 是bool类型的值 true是选中的状态 false是没选中的状态 <二>radio的选中状态 //付款方式 $('div#pay-type input[type="radio"] ').each(function (e) { var ra