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