У меня есть jqGrid, что я настроить как этотjqGrid текста сортировка
gridAltMpn.jqGrid({
autowidth: true,
shrinkToFit: true,
datatype : 'local',
data : input,
height : '100',
scrollrows: true,
scrollOffset : '0',
hidegrid : false,
colNames : [ 'P', 'MPN' ],
colModel : [
{ name : 'Col1', width : 30, align:'center' },
{ name : 'Col2', width : 250, sorttype: 'integer'}
],
pager : '#altmpn_pager',
pagerpos : 'left',
scroll: 50,
gridview : true,
caption : 'A useful table title',
emptyRecordText : '<div id="no_data_msg" style="text-align:center"> No Results Found</div>',
hoverrows : true,
onSelectRow: function(id) {
var gsr = gridAltMpn.jqGrid('getGridParam', 'selrow');
if (gsr) {
var rowData = gridAltMpn.jqGrid('getRowData', gsr);
if ($("input[name='optInvInqType']:checked").val() == 'MPN') {
getInvInq("MPN", rowData.MPN);
}
}
},
loadComplete: function() {
gridAltMpn.setSelection(gridAltMpn.getDataIDs()[0], true);
}
});
данных в этой сетке выглядит следующим образом
XX 774860A6
774860A8
774860A4
774860A3
774860A10
STARTER, PNEUM,PW4000
Когда сетка сначала загружается, что он хорошо, но если пользователь хочет сортировать по второй колонке она заканчивается, как этот
774860A10
774860A3
774860A4
XX 774860A6
774860A8
STARTER, PNEUM,PW4000
774860A10 должен идти после 774860A8 так же, как в целое Сортировать. Я не могу использовать целочисленную сортировку, потому что это не целые числа, поскольку там есть некоторые альфа-символы. Другими словами, я хочу, чтобы текстовая запись сортировалась как целое. Нужно ли использовать обычную процедуру сортировки, а затем включить мой Javascript в целое число, подобное сортировке? Мне также не нужна эта сортировка в первый раз, потому что мой сервер сортирует ее по первому столбцу. Пользователь может захотеть, чтобы он отсортировался по второму столбцу.
+1 Использование 'sorttype', определенного как функция, является правильным способом. Перед сравнением позиций столбца jqGrid позволяет * нормализовать * значения. Нормированные значения будут использоваться в операции сравнения во время выполнения алгоритма сортировки. «sorttype», определяемый как функция, выполняет нормализацию. [Ответ] (http://stackoverflow.com/a/5296935/315935) ближе к тому, чего хочет пользователь. Самая большая проблема заключается только в том, что пользователь не указал точно формат данных. В случае чистых данных HEX можно использовать 'parseInt (значение, 16)', но в случае наличия более сложных входных данных нормализация будет более сложной. – Oleg