将行添加到 Dgrid 的开头而不是使用 Rest 调用结束

Add row to start of Dgrid instead of end using Rest call

如您所知,dgrid 0.4 现在使用 dstore 包而不是 dojo 的商店。在 dstore 中使用 Rest.js,我只想使用 rest 调用向 dgrid 添加一个新行。这很好用。但是,它将行添加到 dgrid 的末尾(作为最后一行)。我需要在开头添加行(使新添加的行成为 dgrid 的第一行)。在 Rest.js 中,有一个名为 defaultNewToStart 的变量,我认为它可以解决问题,但即使设置为 true,dgrid 仍会在末尾添加该行。有关如何在 dstore 中获取 Rest.js 以将行添加到 dgrid 开头的任何建议。

我弄清楚我做错了什么。在 dgrid/OnDemandGrid 中,我设置了 属性 "sort",这导致 Trackable.js 中的 queryExecutor 将新添加的行放在末尾而不是开头。所以我所要做的就是删除排序 属性,现在它可以正常工作了。

dstore/Memory 的添加函数支持 PutDirectives 作为第二个参数,而不是您要插入的项目。 PutDirectives 有一个 属性 beforeId 可用于在商店中任何现有记录之前插入项目。

要在开头添加一个空行:

var beforeID = null;
store.fetch().forEach(lang.hitch(this, function(data) { beforeId = data.id;}));
store.add({id: ''}, {beforeId: beforeID});