目前在 Asp.net 中使用 Telerik MVC 3.0。我有几列的网格。当页面加载时,行被绑定。当我单击该列时,它应该在第一次单击时按降序排序,而不是按升序排序。
问问题
903 次
2 回答
1
您可以通过覆盖网格的 toggleOrder 方法来做到这一点。首先,定义一个新的 ReverseToggleOrder 函数:
function ReverseToggleOrder(l) {
l = typeof l == "number" ? this.columns[l] : l;
var n = "desc";
if (l.order == "desc") {
n = "asc";
} else {
if (l.order == "asc") {
n = null;
}
}
l.order = n;
var m = $.inArray(l, this.sorted);
if (this.sortMode == "single" && m < 0) {
$.each(this.sorted, function () {
this.order = null;
});
this.sorted = [];
}
if (m < 0 && n) {
this.sorted.push(l);
}
if (!n) {
this.sorted.splice(m, 1);
}
}
function grid_onLoad(e) {
var grid = $(this).data('tGrid');
grid.toggleOrder = ReverseToggleOrder;
}
然后在网格的 OnLoad 事件处理程序中,您需要覆盖其默认行为:
.ClientEvents(events => events.OnLoad("grid_onLoad"))
于 2012-11-01T23:01:09.340 回答
0
Grid 不支持这样的排序配置。它总是先排序 ASC,然后再排序 DESC。
于 2012-10-27T16:26:50.463 回答