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