我的页面中有一个kendo下拉列表,使用以下列表作为数据源
[{FieldOne:'def',FieldTwo:'p',FieldThree:14},
{FieldOne:'ijk',FieldTwo:'p',FieldThree:14},
{FieldOne:'lmn',FieldTwo:'p',FieldThree:14},
{FieldOne:'bcd',FieldTwo:'',FieldThree:14}]
我需要根据FieldOne升序和FieldTwo降序对此数据源进行排序 我正在使用以下代码对数据源进行排序
var dropdownlist = $("#dropdown").data("kendoDropDownList");
dropdownlist.dataSource.sort({ field: 'FieldOne', dir: 'asc' });
dropdownlist.dataSource.sort({ field: 'FieldTwo', dir: 'desc' });
它的工作正常,但如果我向数据源添加另一个像{FieldOne:'abc',FieldTwo:'p',FieldThree:14}
的对象,我会得到以下结果
[{FieldOne:'def',FieldTwo:'p',FieldThree:14},
{FieldOne:'ijk',FieldTwo:'p',FieldThree:14},
{FieldOne:'lmn',FieldTwo:'p',FieldThree:14},
{FieldOne:'abc',FieldTwo:'p',FieldThree:14},
{FieldOne:'bcd',FieldTwo:'',FieldThree:14}]
但我想将数据源排序为
[{FieldOne:'abc',FieldTwo:'p',FieldThree:14},
{FieldOne:'def',FieldTwo:'p',FieldThree:14},
{FieldOne:'ijk',FieldTwo:'p',FieldThree:14},
{FieldOne:'lmn',FieldTwo:'p',FieldThree:14},
{FieldOne:'bcd',FieldTwo:'',FieldThree:14}]
我不知道如何实现这一点我几乎尝试了所有我知道的但仍然没有结果。无论如何我能得到想要的结果???
答案 0 :(得分:1)
你应该在dataSource中定义排序:
<input id="dropdownlist" />
<script>
var dropdownlist = $("#dropdownlist").kendoDropDownList({
dataSource:{
data:[{FieldOne:'def',FieldTwo:'p',FieldThree:14},
{FieldOne:'ijk',FieldTwo:'p',FieldThree:14},
{FieldOne:'lmn',FieldTwo:'p',FieldThree:14},
{FieldOne:'bcd',FieldTwo:'',FieldThree:14}],
sort: [
{ field: "FieldOne", dir: "asc" },
{ field: "FieldTwo", dir: "desc" }
]
},
dataTextField: "FieldOne",
dataValueField: "FieldTwo"
}).data('kendoDropDownList');
dropdownlist.dataSource.add({FieldOne:'abc',FieldTwo:'p',FieldThree:14});
</script>
检查http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#configuration-sort了解更多信息