Error when attempting currency sort - [RESOLVED]
Error when attempting currency sort - [RESOLVED]
Added the plugin code per other threads on here, specifically (http://datatables.net/forums/discussion/2436/currency-sorting-example/p1) and get an error in the console of "Object doesn't support property or method 'currency-asc'" when the initialization code is called.
[code]
jQuery.fn.dataTableExt.aTypes.push(
function(sData) {
var sValidChars = "0123456789.-,";
var Char;
/* Check the numeric part */
for (i = 1; i < sData.length; i++) {
Char = sData.charAt(i);
if (sValidChars.indexOf(Char) == -1) {
return null;
}
}
/* Check prefixed by currency */
if (sData.charAt(0) == '$' || sData.charAt(0) == '£') {
return 'currency';
}
return null;
}
);
jQuery.fn.dataTableExt.oSort['currency-asc'] = function(a, b) {
/* Remove any commas (assumes that if present all strings will have a fixed number of d.p) */
var x = a == "-" ? 0 : a.replace(/,/g, "");
var y = b == "-" ? 0 : b.replace(/,/g, "");
/* Remove the currency sign */
x = x.substring(1);
y = y.substring(1);
/* Parse and return */
x = parseFloat(x);
y = parseFloat(y);
return x - y;
};
jQuery.fn.dataTableExt.oSort['currency-desc'] = function(a, b) {
/* Remove any commas (assumes that if present all strings will have a fixed number of d.p) */
var x = a == "-" ? 0 : a.replace(/,/g, "");
var y = b == "-" ? 0 : b.replace(/,/g, "");
/* Remove the currency sign */
x = x.substring(1);
y = y.substring(1);
/* Parse and return */
x = parseFloat(x);
y = parseFloat(y);
return y - x;
};
function loadTables() {
$('.dataTable').dataTable({
"sPaginationType": "full_numbers",
"bJQueryUI": true,
"bStateSave": true,
"iDisplayLength": 10
"aoColumns": [null, null, null, null, { "sSortDataType": "dom-text", "sType" : "currency"}, null, null, null]
});
}
[/code]
This is at the bottom of the page with the js include of dataTables min at the top.
I'm certain I'm missing something easy???? cell data looks like this $123434.00 - nothing special
[code]
jQuery.fn.dataTableExt.aTypes.push(
function(sData) {
var sValidChars = "0123456789.-,";
var Char;
/* Check the numeric part */
for (i = 1; i < sData.length; i++) {
Char = sData.charAt(i);
if (sValidChars.indexOf(Char) == -1) {
return null;
}
}
/* Check prefixed by currency */
if (sData.charAt(0) == '$' || sData.charAt(0) == '£') {
return 'currency';
}
return null;
}
);
jQuery.fn.dataTableExt.oSort['currency-asc'] = function(a, b) {
/* Remove any commas (assumes that if present all strings will have a fixed number of d.p) */
var x = a == "-" ? 0 : a.replace(/,/g, "");
var y = b == "-" ? 0 : b.replace(/,/g, "");
/* Remove the currency sign */
x = x.substring(1);
y = y.substring(1);
/* Parse and return */
x = parseFloat(x);
y = parseFloat(y);
return x - y;
};
jQuery.fn.dataTableExt.oSort['currency-desc'] = function(a, b) {
/* Remove any commas (assumes that if present all strings will have a fixed number of d.p) */
var x = a == "-" ? 0 : a.replace(/,/g, "");
var y = b == "-" ? 0 : b.replace(/,/g, "");
/* Remove the currency sign */
x = x.substring(1);
y = y.substring(1);
/* Parse and return */
x = parseFloat(x);
y = parseFloat(y);
return y - x;
};
function loadTables() {
$('.dataTable').dataTable({
"sPaginationType": "full_numbers",
"bJQueryUI": true,
"bStateSave": true,
"iDisplayLength": 10
"aoColumns": [null, null, null, null, { "sSortDataType": "dom-text", "sType" : "currency"}, null, null, null]
});
}
[/code]
This is at the bottom of the page with the js include of dataTables min at the top.
I'm certain I'm missing something easy???? cell data looks like this $123434.00 - nothing special
This discussion has been closed.
Replies
Nothing else is different........ IE.... gotta love it.