[原创]标记下Kendo使用中的问题, 持续更新中ing.....
使用kendo UI 遇到的问题:
1. Kendo DropdownList 加载完毕后, 显示 [object object]的问题:
解决: 尝试了添加dataTextField、dataValueField后, 依然无法解决. 经过1天的排查, 问题在同时引用了Kendo Mobile.js 和Kendo all.js文件时, 需要把kendo mobile.js 放在kendo.all.js的前面. 只要把kendo.mobile放下后面, 就会出现选项是[object object].
2. Kendo DropdownList, 使用remote dataSource时, 在初始化方法中index属性无法使用、select也方法无效. 但是使用local dataSource时一切正常.
解决: 当index执行的时候, 远程数据还未取出来. 在dataBound事件中执行select方法来选择.
$('#dicParentId').kendoDropDownList({ optionLabel: { dicText: "--请选择字典项--", dicValue: "-1" }, dataTextField: "dicText", dataValueField: "dicValue", dataSource: ddlDataSource, dataBound: function () { //数据加载在index方法之后才完成, 所以在绑定方法中选择. this.select(0); } });
3. Kendo Grid, 刷新数据源的问题.
var reBindSupData = function(){ debugger; var treeList = window.parent.$('#dynTblList').data("kendoTreeList"); var dataSrc = treeList.dataSource; treeList.dataSource.data([]); treeList.setDataSource(dataSrc); //另外一种方法 //$('#dynTblList').data("kendoTreeList").dataSource.read(); //$('#dynTblList').data("kendoTreeList").refresh(); }
4. 在Kendo Grid或者TreeList中, 先执行自定义的方法, 在执行Grid的删除
name: "urlDestroy", text: "删除", imageClass: "k-icon k-i-close", click: function (e) { //debugger; var dataItem = this.dataItem($(e.currentTarget).closest("tr")); if (confirm('该操作将会删除 "' + dataItem.DictionaryValue+'" 及其子项, 您确定要删除吗?')) { var treeGrid = $("#dynTblList").data("kendoTreeList"); treeGrid.dataSource.remove(dataItem); treeGrid.dataSource.sync(); treeGrid.refresh(); } }
5. Kendo TreeList中, 刷新List并展开选择的结点
var treeView = $('#folders-treeview').data('kendoTreeView'); var selected = treeView.select(); if (treeView != null && selected != null) { var selectedDataItem = treeView.dataItem(selected); selectedDataItem.loaded(false); selectedDataItem.load(); treeView.one("dataBound", function () { treeView.expand(selected); }); }