dojo 1.10 添加 CheckedMultiSelect 的排序行为
dojo 1.10 adding sort behaviour of CheckedMultiSelect
大家好,我拼命尝试对 CheckedMultiSelect 进行排序,但运气不佳,似乎尽管更改了商店中数据的顺序,但它始终按字母顺序显示。
作为 dojo 的新手,我曾尝试四处寻找教程,但遗憾的是,我并不喜欢。
有人可以向我解释如何最好地对内存存储填充的 CheckedMultiSelect 中的数据进行排序吗?
代码:
var store = new Memory({'data', : data});
//where this is my CheckedMultiSelect box
this._set("store", store);
在我的 postCreate 函数中,我现在这样做:
this.options = this.store.query({}, {sort: [{attribute: "name", descending: "true"}]});
this._set("labelAttr", "name");
console.log(this.options);
我可以在 firebug 和控制台中看到数据的顺序是正确的,但是现在除了复选框我什么都看不到,有一个 space,其中 select离子应该是)。
我不知道这是否有帮助,但这是设置填充 multi 的数据的代码 select,之前的一切只是将字符串解析到存储对象中。
无论我做什么,我都无法更改顺序,即使更改商店数据中元素的顺序也不会造成盲目差异,我猜测 CheckedMultiSelect 具有某种行为关于排序,仅此而已;一个猜测。
您设置 sortByLabel: false
,然后提供一个 queryOptions
对象(参见下面的示例)。
至于为什么我们需要 sortByLabel
,请参阅 _FormSelectWidget:
// sortByLabel: Boolean
// Flag to sort the options returned from a store by the label of
// the store.
sortByLabel: true,
...虽然似乎有 plans to deprecate it.
示例如下:
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");
大家好,我拼命尝试对 CheckedMultiSelect 进行排序,但运气不佳,似乎尽管更改了商店中数据的顺序,但它始终按字母顺序显示。
作为 dojo 的新手,我曾尝试四处寻找教程,但遗憾的是,我并不喜欢。
有人可以向我解释如何最好地对内存存储填充的 CheckedMultiSelect 中的数据进行排序吗?
代码:
var store = new Memory({'data', : data});
//where this is my CheckedMultiSelect box
this._set("store", store);
在我的 postCreate 函数中,我现在这样做:
this.options = this.store.query({}, {sort: [{attribute: "name", descending: "true"}]});
this._set("labelAttr", "name");
console.log(this.options);
我可以在 firebug 和控制台中看到数据的顺序是正确的,但是现在除了复选框我什么都看不到,有一个 space,其中 select离子应该是)。
我不知道这是否有帮助,但这是设置填充 multi 的数据的代码 select,之前的一切只是将字符串解析到存储对象中。
无论我做什么,我都无法更改顺序,即使更改商店数据中元素的顺序也不会造成盲目差异,我猜测 CheckedMultiSelect 具有某种行为关于排序,仅此而已;一个猜测。
您设置 sortByLabel: false
,然后提供一个 queryOptions
对象(参见下面的示例)。
至于为什么我们需要 sortByLabel
,请参阅 _FormSelectWidget:
// sortByLabel: Boolean
// Flag to sort the options returned from a store by the label of
// the store.
sortByLabel: true,
...虽然似乎有 plans to deprecate it.
示例如下:
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");