Forum

July 10th, 2011
You must be logged in to post Login Register

Search Forums:


 






using jqgrid formatter as utility function externally

UserPost

14:39
09/05/2012


mcslayton

Member

posts 3

Post edited 16:03 – 10/05/2012 by mcslayton
Post edited 16:03 – 10/05/2012 by mcslayton


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
11/05/2012


tony

Sofia, Bulgaria

Moderator

posts 7010

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

02:48
12/05/2012


mcslayton

Member

posts 3

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
12/05/2012


tony

Sofia, Bulgaria

Moderator

posts 7010

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

01:26
13/05/2012


mcslayton

Member

posts 3

Post edited 01:28 – 13/05/2012 by mcslayton


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;
}


About the jQuery Grid Plugin – jqGrid forum

Most Users Ever Online:

157


Currently Online:

31 Guests

Forum Stats:

Groups: 1

Forums: 7

Topics: 9596

Posts: 28792

Membership:

There are 10196 Members

There have been 448 Guests

There is 1 Admin

There are 2 Moderators

Top Posters:

OlegK – 1157

markw65 – 179

kobruleht – 144

phicarre – 126

YamilBracho – 124

Renso – 118

Administrators: admin (56 Posts)

Moderators: tony (7010 Posts), Rumen[Trirand] (81 Posts)




Comments are closed.
Privacy Policy   Terms and Conditions   Contact Information