Я использую free-jqgrid 4.15.6.Я использую встроенный форматер валюты, который отлично форматирует числа.Я использую префикс: '$', defaultValue: '' в форматах.
При первой загрузке сетки строки, столбцы валют которых пусты, не показывают форматирование в сетке, как должно быть.
Нопосле встроенного редактирования, когда ничего не было введено в элемент управления редактирования (то есть элемент управления не имеет введенного значения), после редактирования предопределенный модуль форматирования отображает «$» в ячейке, а не пустой, как требуется.
Глядя на исходную кодовую базу free-jqgrid, я вижу, что эта функция используется для установки форматированного отображения:
var insertPrefixAndSuffix = function (sOutput, opts) {
// Prepend prefix
sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
// Append suffix
return (opts.suffix) ? sOutput + opts.suffix : sOutput;
},
Я добавил условный тест в начале этой функции, который вынуждает jqgrid НЕ форматировать с опциями валютыесли форматируемое значение является пустой строкой.
var insertPrefixAndSuffix = function (sOutput, opts) {
// return empty string if no cellvalue
if(sOutput == '') { return ''; }
// Prepend prefix
sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
// Append suffix
return (opts.suffix) ? sOutput + opts.suffix : sOutput;
},
Однако это редактирование, хотя и работает для меня, НЕ является правильным способом выполнения этой работы.Я знаю, что вместо этого я должен расширять предопределенный объект форматирования тока jqGrid или, может быть, даже объект форматирования jQuery, но все мои усилия потерпели неудачу.
Может кто-нибудь сказать мне, как добавить эту условную логику кода, чтобы я мог сохранить исходный код free-jqgrid неизменным, но переопределить предопределенный форматер валют jqgrid?