是否可以在读取数据之前以编程方式设置 KendoUI 数据源的排序参数并避免第二个服务器读取?
范围是对特定用户交互设置默认排序。如何?
这是我想要做的一个例子,因为答案没有切中要害(或者也许我不明白事情是如何运作的)。
我定义了一个具有初始排序的 Kendo 数据源:
var datasource = new kendo.data.DataSource({
parameterMap: function (inputParams, operation) {
return JSON.stringify(inputParams)
},
// default sort
sort: [
{field: "field_1", dir: "asc"},
{field: "field_2", dir: "asc"}
]
});
此数据源绑定到 Kendo 网格:
var grid = $("element").kendoGrid({
dataSource: datasource
});
然后我有一个按钮,可以在数据源上调用“读取”并使用第一页数据填充网格:
$("#btn").bind("click", function(e) {
datasource.page(1);
});
这样,单击按钮后,用户将获取按“field_1”和“field_2”排序的数据,并且网格在列标题上显示这种排序。然后,用户可以通过单击列标题以任何方式对数据重新排序。
我想要做的是将默认排序重置为数据源声明中定义的初始排序,在列标题上再次显示它,而无需再次创建新的数据源。
就像是:
$("#btn").bind("click", function(e) {
datasource.sort = [
{field: "field_1", dir: "asc"},
{field: "field_2", dir: "asc"}
];
datasource.page(1);
});
提供的解决方案似乎没有达到目的(而且我仍然不明白为什么我会因为一个似乎不那么微不足道并且应该由框架解决的合法问题而失去声誉点)。
请告诉我我错了(我并不担心失去声誉 - 我只想了解如何解决问题)。