Forum
14:39
12/09/2011
I have occasion when it would be helpful to hook into jqGrid's format matter from outside a jqGrid. Using it to format an integer, number, currency, etc. Something like:
var integerOut = $.fn.fmatter("integer", 76543.21);
So integerOut would be equal to '76,543' if in USA after the call.
Can this be done somehow?
What would be the proper calling syntax?
14:08
Moderators
30/10/2007
Hello,
This should work, but there is a bug in the formatter checking for colModel format options.
I will fix this and replay when done.
Thanks.
Best Regards
Tony
For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.
02:48
12/09/2011
Devised my own solution that allows for formatting integers, numbers and currency using jqGrid's localization configurations:
function isNumeric(number) { return !isNaN(parseFloat(number)) && isFinite(number); } function formatInteger(number) { return isNumeric(number) ? $.fmatter.util.NumberFormat(Math.floor(number), $.jgrid.formatter.integer) : number; } function formatNumber(number) { return isNumeric(number) ? $.fmatter.util.NumberFormat(number, $.jgrid.formatter.number) : number; } function formatCurrency(number) { return isNumeric(number) ? $.fmatter.util.NumberFormat(number, $.jgrid.formatter.currency) : number; }
09:35
Moderators
30/10/2007
Hello,
I just fixed the problem.
https://github.com/tonytomov/jqGrid/commit/b919a66806297a8249114c8f555a526ef57bd88f
You can download the source from GitHub and use it. Please let me know if there is a problem.
Regards
For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.
01:26
12/09/2011
Tony,
Thank you that change worked great! I needed the unformat as well so I implemented them as shown below.
Can the unformats be called from $.fn.fmatter somehow as well?
Marv
-------------------------------------------------------------------------------------------------------------------------------------
function isNumeric(number) { return !isNaN(parseFloat(number)) && isFinite(number); } function formatInteger(number) { return isNumeric(number) ? $.fn.fmatter("integer", number) : $.jgrid.formatter.integer.defaultValue; } function formatNumber(number) { return isNumeric(number) ? $.fn.fmatter("number", number) : $.jgrid.formatter.number.defaultValue; } function formatCurrency(number) { return isNumeric(number) ? $.fn.fmatter("currency", number) : $.jgrid.formatter.currency.defaultValue; } function unformatInteger(number) { var parts = number.split($.jgrid.formatter.number.decimalSeparator); var out = parseInt(parts[0].replace(/[^0-9-]/g, '')); return isNumeric(out) ? out : 0; } function unformatNumber(number) { var op = $.jgrid.formatter.number; var re = /([.*_'(){}+?\])/g; var sep = op.thousandsSeparator.replace(re, "\$1"); var stripTag = new RegExp(sep, "g"); var out = number.replace(stripTag, "").replace(op.decimalSeparator, '.'); return isNumeric(out) ? out : 0.0; } function unformatCurrency(ret) { var op = $.jgrid.formatter.currency; var re = /([.*_'(){}+?\])/g; var sep = op.thousandsSeparator.replace(re, "\$1"); var stripTag = new RegExp(sep, "g"); if (op.prefix && op.prefix.length && ret.indexOf(op.prefix) > -1) { ret = ret.substr(op.prefix.length); } if (op.suffix && op.suffix.length && ret.indexOf(op.suffix) > -1) { ret = ret.substr(0, ret.length - op.suffix.length); } ret = ret.replace(stripTag, '').replace(op.decimalSeparator, '.'); return isNumeric(ret) ? ret : 0.0; }
Most Users Ever Online: 715
Currently Online:
35 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
OlegK: 1255
markw65: 179
kobruleht: 144
phicarre: 132
YamilBracho: 124
Renso: 118
Member Stats:
Guest Posters: 447
Members: 11373
Moderators: 2
Admins: 1
Forum Stats:
Groups: 1
Forums: 8
Topics: 10592
Posts: 31289
Newest Members:
, razia, Prankie, psky, praveen neelam, greg.valainis@pa-tech.comModerators: tony: 7721, Rumen[Trirand]: 81
Administrators: admin: 66