2013-06-06 1 views
1

Я хочу выборочно отсортировать магазин в Сенче.
выборочно сортировать магазин в сенча

Сценарий: скажем, в моем магазине есть 5 элементов следующим образом.
1. Ad
2. Ab
3. Ac
4. М
5. Ae

Так что, когда я показываю эти записи в списке, я хочу, чтобы "Ас" всегда 0-я позиция (первая запись) и другие 4 сортируется, как показано ниже:
1. Ас
2. Ab
3. Объявление
4. Аи
5. М

Сортировка магазина, как показано ниже,
сортировщики: {
собственности: 'запись',
направление: 'ASC'
}

даст регулярный результат сортировки следующим образом:
1 . Ab
2. Ac
3. Объявление
4. Ae
5. М

Цените, если кто-то может помочь. Благодарю.

ответ

2

Вы можете использовать sorterFn вместо property, для сортировки с использованием настраиваемой функции.

В вашем примере, который даст желаемый результат:

{ 
    direction: 'ASC' 
    ,sorterFn: function(left, right) { 
     var l = left.get('record') || '', 
      r = right.get('record') || ''; 

     // Special case 'Ac' is always first 
     if (l === 'Ac') { 
      if (r === 'Ac') { 
       return 0; 
      } else { 
       return -1; 
      } 
     } else if (r === 'Ac') { 
      return 1; 
     } 

     // Defaults to a standard string comparison 
     else { 
      return l.localeCompare(r); 
     } 
    } 
} 
0


В приведенном выше сценарии я фактически добавлял «Ac» с клиентской стороны и получал другие записи с сервера. Итак, вместо сортировки моего магазина с помощью сортировщика Sencha, я сделал это следующим образом.
1. Измените запрос, который получает данные с сервера как «выберите xxx, xxx, запись из xxxxx, упорядоченную по записи»
2. Добавьте «Ac» в 0-ю позицию в магазине.
store.add (0, {запись: «Ас»})

Хотя я полностью согласен, что это один из сценария, а не ответ на вопрос, я спросил.

 Смежные вопросы

  • Нет связанных вопросов^_^