gpt4 book ai didi

sorting - 以编程方式设置网格排序

转载 作者:行者123 更新时间:2023-12-03 15:16:17 24 4
gpt4 key购买 nike

是否可以在读取数据之前以编程方式设置 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 绑定(bind)到 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);
});

提供的解决方案似乎没有达到目的(我仍然不明白为什么我会因为一个似乎不是那么微不足道的合法问题而失去声誉点,应该由框架解决)。

请告诉我我错了(我不担心失去声誉 - 我只想了解如何解决问题)。

最佳答案

var kendoGrid = $("#grid").data('kendoGrid');
var dsSort = [];
dsSort.push({ field: "fieldName1", dir: "asc" });
dsSort.push({ field: "fieldName2", dir: "desc" });
kendoGrid.dataSource.sort(dsSort);

关于sorting - 以编程方式设置网格排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13863111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com