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}]

我不知道如何做到这一点,我几乎尝试了我所知道的一切,但仍然没有结果。我有没有办法得到想要的结果???

您应该在数据中定义排序来源:

<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-排序以获取更多信息

相关内容

最新更新