Kendo dropdownlist сортировка источника данных

У меня есть раскрывающийся список кендо на моей странице, использующий следующий список в качестве источника данных

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

Я не знаю, как этого добиться, я перепробовал почти все, что знаю, но все равно безрезультатно. Могу ли я получить желаемый результат???


person Optimus    schedule 25.11.2015    source источник
comment
Возможно, вам придется сортировать каждый раз, когда вы добавляете объект...   -  person DontVoteMeDown    schedule 25.11.2015
comment
@DontVoteMeDown в настоящее время я делаю это, но безрезультатно   -  person Optimus    schedule 25.11.2015


Ответы (1)


Вы должны определить сортировку в источнике данных:

<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 для получения дополнительной информации.

person Gene R    schedule 25.11.2015