当我们点击标题栏时,剑道网格的默认排序方向是升序。
当用户第一次点击标题时,我想按降序对kendo网格进行排序。
示例:
1. Default Behavior
Studnet Marks
abc 15
pqr 25
xyz 7
2. When Clicking on Marks Header first time
Student Marks
pqr 25
abc 15
xyz 7
3. When clicking on Marks header second time.
Students Marks
xyz 7
abc 15
pqr 25
我想要这样的事情:
$("#priority .k-header").eq(1).click(function(ele) {
debugger;
var kendoGrid = $("#priority").data('kendoGrid');
var dsSort = [];
var sort = kendoGrid.dataSource.sort();
if (sort.length > 0) {
if(sort[0].dir==="asc")
kendoGrid.dataSource.sort({field: sort[0].field, dir: "desc"});
if(sort[0].dir==="desc")
kendoGrid.dataSource.sort({field: sort[0].field, dir: "asc"});
}
});
但它不起作用。
答案 0 :(得分:1)
在kendo数据源中指定排序,如下所示:
var firstClick=true;
$('#grid').data().kendoGrid.dataSource.bind('change', function(e) {
if(firstClick){
var kendoGrid = $("#grid").data('kendoGrid');
var dsSort = [];
dsSort.push({ field: "fieldName1", dir: "asc" });
dsSort.push({ field: "fieldName2", dir: "desc" });
...
kendoGrid.dataSource.sort(dsSort);
firstClick=false;
}
});
<强>被修改强> 你可以试试这个
设置全局值并调用change dataSource函数
Indentation Error
答案 1 :(得分:0)
我也在寻找这个,并遇到了这个问题。 在此期间我找到了解决方案。 我们创建了一个反转字段的函数:
function reverseSortOrderSequence() {
setTimeout(function() {
var colSortHeaders = $("#gridId [data-role='columnsorter']");
$.each(colSortHeaders, function(index, item) {
if ($(item).attr("data-dir") === undefined) {
$(item).attr("data-dir", "asc");
} else if ($(item).attr("data-dir") === "asc") {
$(item).attr('data-dir', 'desc');
} else if ($(item).attr("data-dir") === "desc") {
$(item).attr('data-dir', null);
}
});
});
}
只需用您的剑道网格ID替换gridId。
然后,在Kendo Grid配置的dataBound属性中调用此函数:
{...
columns: ...,
dataBound: function(event) {
reverseSortOrderSequence();
}
}