Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting dojo 1.10添加CheckedMultiSelect的排序行为_Sorting_Dojo - Fatal编程技术网

Sorting dojo 1.10添加CheckedMultiSelect的排序行为

Sorting dojo 1.10添加CheckedMultiSelect的排序行为,sorting,dojo,Sorting,Dojo,大家好,我正在拼命地对CheckedMultiSelect进行排序,但运气不好,似乎尽管更改了存储中数据的顺序,但它始终按字母顺序显示 由于对dojo比较陌生,我试着四处寻找教程,但遗憾的是,我没有任何乐趣 有人能给我解释一下如何最好地对由内存存储填充的CheckedMultiSelect中的数据进行排序吗 代码: 在我的“后创建”功能中,我现在执行以下操作: this.options = this.store.query({}, {sort: [{attribute: "name", desc

大家好,我正在拼命地对CheckedMultiSelect进行排序,但运气不好,似乎尽管更改了存储中数据的顺序,但它始终按字母顺序显示

由于对dojo比较陌生,我试着四处寻找教程,但遗憾的是,我没有任何乐趣

有人能给我解释一下如何最好地对由内存存储填充的CheckedMultiSelect中的数据进行排序吗

代码:

在我的“后创建”功能中,我现在执行以下操作:

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");