parent
737bc82979
commit
920e66c512
@ -0,0 +1,59 @@
|
||||
/**
|
||||
* Sorts cells with empty values by placing them after cells with values
|
||||
* This helps when if you have column that may or may not have values
|
||||
* allowing items with values to appear first when sorting ascending
|
||||
* This was written to help with sorting items that were ranked, where
|
||||
* items without a rank number were considered lower in rank
|
||||
*
|
||||
* @name Empty
|
||||
* @summary Sort items without a value after items with a value
|
||||
* @author Timothy Stewart
|
||||
*
|
||||
* @example
|
||||
* $('#example').dataTable( {
|
||||
* columnDefs: [
|
||||
* { type: 'empty', targets: 0 }
|
||||
* ]
|
||||
* } );
|
||||
*/
|
||||
function emptySort(x, y) {
|
||||
// this is the value we will end up returning
|
||||
var retVal;
|
||||
|
||||
// replace html spaces with empty, shouldn't happen but just in case
|
||||
x = x.replace(' ', '');
|
||||
y = y.replace(' ', '');
|
||||
|
||||
// test if a number, if so, set it
|
||||
if (parseInt(x)) {
|
||||
x = parseInt(x)
|
||||
}
|
||||
|
||||
if (parseInt(y)) {
|
||||
y = parseInt(y)
|
||||
}
|
||||
|
||||
// now we need to eval the x,y values and set the order
|
||||
// if blank they will appear last
|
||||
if (x == y) retVal = 0;
|
||||
else if (parseInt(x) && parseInt(y)) {
|
||||
if (x > y) retVal = 1;
|
||||
else retVal = -1;
|
||||
}
|
||||
else if (parseInt(x)) retVal = -1;
|
||||
else if (parseInt(y)) retVal = 1;
|
||||
else if (x > y) retVal = 1;
|
||||
else return -1;
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
|
||||
'empty-asc': function (a, b) {
|
||||
return emptySort(a, b);
|
||||
},
|
||||
|
||||
'empty-desc': function (a, b) {
|
||||
return emptySort(b, a);
|
||||
}
|
||||
});
|
Loading…
Reference in new issue