У меня была такая же проблема.
Кроме того, я хотел jqGrid
, чтобы показать свои цифры с тысячами сепараторов и 2 знака после запятой, но при использовании по умолчанию 'number'
форматировщика Вызванного любые обнуляет (из базы данных), чтобы отображаться как «0.00
» вместо того, чтобы оставить пустыми.
$("#tblListOfRecords").jqGrid({
...
colModel: [
{ name: "SomeNumber", formatter: 'number', sorttype: "integer", formatoptions: { decimalPlaces: 2 } }
]
...
Это было не совсем то, что я хотел.
Моего решения было написать свой собственный форматировщик:
$("#tblListOfRecords").jqGrid({
...
colModel: [
{ name: "SomeNumber", formatter: formatNumber}
]
});
function formatNumber(cellValue, options, rowdata, action) {
// Convert a jqGrid number string (eg "1234567.89012") into a thousands-formatted string "1,234,567.89" with 2 decimal places
if (cellValue == "")
return "";
if (cellValue == null || cellValue == 'null')
return "";
var number = parseFloat(cellValue).toFixed(2); // Give us our number to 2 decimal places
return number.toLocaleString(); // "toLocaleString" adds commas for thousand-separators.
}
'' null' и undefined' должна быть преобразована автоматически [скрипка] (http://jsfiddle.net/UG223/) – Andreas
Я уверен, что * код сервера * return '" null "или" NULL "вместо" null ", который соответствует формату JSON. Таким образом, код сервера имеет ошибку. Исправление кода сервера с помощью функции [ISNULL] [1] SQL или другое исправление кода было бы лучшим решением. Если использовать пользовательский форматтер, то параметр 'aotoencode: true' не будет работать для столбца. Я бы рекомендовал включить явный вызов '$ .jgrid.htmlEncode' в форматировщик 'nullFormatter' и определить функцию [unformat] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_formatter#unformatting) слишком. – Oleg