Если вы работаете с удаленными данными (datatype:'json'
или datatype:'xml'
), вы можете легко реализовать любой вид сортировки.Поэтому я предполагаю, что вы имеете в виду jqGrid с локальными данными в вашем вопросе.В этом случае я бы рекомендовал вам использовать параметр sorttype
внутри colModel
, определенный как функция.
Для столбца Address
можно определить свойство sorttype
, которое выглядит следующим образом:
sorttype: function(cellValue, rowObject) {
return rowObject.State;
}
или как этот:
sorttype: function(cellValue, rowObject) {
return rowObject.State + "_" + cellValue;
}
Параметр cellValue
содержит содержимое ячейки, которая будет использоваться в операции сравнения для сортировки сетки.rowObject
- это объект, представляющий всю строку, имеющую cellValue
.Возврат другого значения как cellValue
из функции sorttype
будет означать, что восстановленное значение будет использоваться в операциях сравнения вместо cellValue
.
. В первом примереРеализация sorttype
(см. Выше) сортировка по столбцу Address
будет выполняться на основе содержимого столбца с именем State
.Во втором примере строки, имеющие одинаковое состояние, будут дополнительно отсортированы по адресу.
Здесь вы можете посмотреть небольшую демонстрацию .Если щелкнуть столбец «Налог», сетка будет отсортирована по столбцу «Идентификатор», где значения идентификатора будут интерпретироваться как целое число.