Sorting dojo 1.10添加CheckedMultiSelect的排序行为
大家好,我正在拼命地对CheckedMultiSelect进行排序,但运气不好,似乎尽管更改了存储中数据的顺序,但它始终按字母顺序显示 由于对dojo比较陌生,我试着四处寻找教程,但遗憾的是,我没有任何乐趣 有人能给我解释一下如何最好地对由内存存储填充的CheckedMultiSelect中的数据进行排序吗 代码: 在我的“后创建”功能中,我现在执行以下操作:Sorting dojo 1.10添加CheckedMultiSelect的排序行为,sorting,dojo,Sorting,Dojo,大家好,我正在拼命地对CheckedMultiSelect进行排序,但运气不好,似乎尽管更改了存储中数据的顺序,但它始终按字母顺序显示 由于对dojo比较陌生,我试着四处寻找教程,但遗憾的是,我没有任何乐趣 有人能给我解释一下如何最好地对由内存存储填充的CheckedMultiSelect中的数据进行排序吗 代码: 在我的“后创建”功能中,我现在执行以下操作: this.options = this.store.query({}, {sort: [{attribute: "name", desc
this.options = this.store.query({}, {sort: [{attribute: "name", descending: "true"}]});
this._set("labelAttr", "name");
console.log(this.options);
我可以在firebug和console中看到数据的顺序是正确的,但是现在除了复选框之外,我什么都看不到,在这个空间中,选择的值应该是正确的)
我不知道这是否会有帮助,但这是设置填充multi-select的数据的代码,之前的一切只是将字符串解析到store对象中
无论我做什么,我都无法获得更改的顺序,即使更改存储数据中元素的顺序也不会产生一点盲目的差异,我猜想CheckedMultiSelect在排序方面有某种行为,但正是这种行为;猜测。设置
sortByLabel:false
,然后提供queryOptions
对象(参见下面的示例)
关于为什么需要sortByLabel
,请参阅:
。。。虽然似乎有
下面是一个例子:
var checkedMultiSelect = new CheckedMultiSelect ({
dropDown: true,
multiple: true,
labelAttr: "label", // Need this to be able to use Memory directly
sortByLabel: false, // Need this to override sort
queryOptions: { // Now, finally, specify sort order.
sort: [
{attribute:'sortByMeFirst'},
{attribute:'sortByMeSecond', descending: true}
]
},
store: memoryStore
}, "dropdown");
请参阅:请发布一些相关代码。您可能需要手动对列表进行排序。添加了填充my MultiselectBoxStore的代码片段。您看过本教程吗?-在睡了一夜之后添加额外的代码这确实是个问题,在考虑将其设置为false,然后使用查询api之后,一切都很好:)我实际上需要自己做这件事,回到这里,才意识到我们的解决方案比需要的更复杂。我已经更新了示例和JSFIDLE。希望它能帮助别人。
// sortByLabel: Boolean
// Flag to sort the options returned from a store by the label of
// the store.
sortByLabel: true,
var checkedMultiSelect = new CheckedMultiSelect ({
dropDown: true,
multiple: true,
labelAttr: "label", // Need this to be able to use Memory directly
sortByLabel: false, // Need this to override sort
queryOptions: { // Now, finally, specify sort order.
sort: [
{attribute:'sortByMeFirst'},
{attribute:'sortByMeSecond', descending: true}
]
},
store: memoryStore
}, "dropdown");