V2 Column ordering with edited data
V2 Column ordering with edited data
MattSkeldon
Posts: 19Questions: 1Answers: 0
First of all, apologies if this is not the correct place to report bugs for V2 of Datatables, second apologies again if this is not a bug and simply a misunderstanding of implementation.
Unfortuantly I am unable to link to a live version so I have replicated it using the test suite.
http://live.datatables.net/dowameb/1/edit?js,output
As you can see I have modified cell value inside the rowCallback function, doing this does not get taken into account when then ordering that particular column...
I saw in the documentation that you can set orthagonal data using data-sort but again this does not seem to have any effect when doing so (also demonstrated) in the rowCallback function.
In my implementation I am unable to set the order at markup level as I use ajaxsource with an aaData object to return the values to be added to the table.
If I am indeed correct that this is a bug, I am not sure how difficult it would be but perhaps an implementation idea could be to supply two values inside the aaData object
eg...
[code]
{"aaData":[
[
28,
"00011",
"PY/66732",
"Someones Name",
{
display : "ABCD",
order : "SomeValueThatShouldDisplaySecondWhenOrderedAlphabetically"
}
],
[
65,
"00012",
"PY/54356",
"Protected For Integrity",
{
display : "EFGH",
order : "AnotherValueTheShouldDisplayFirstWhenOrderedAlphabetically"
}
]
]}
[/code]
Hopefully this is easy enough to understand, I am relatively new to reporting problems (if as alluded to previously this is a problem at all)
Unfortuantly I am unable to link to a live version so I have replicated it using the test suite.
http://live.datatables.net/dowameb/1/edit?js,output
As you can see I have modified cell value inside the rowCallback function, doing this does not get taken into account when then ordering that particular column...
I saw in the documentation that you can set orthagonal data using data-sort but again this does not seem to have any effect when doing so (also demonstrated) in the rowCallback function.
In my implementation I am unable to set the order at markup level as I use ajaxsource with an aaData object to return the values to be added to the table.
If I am indeed correct that this is a bug, I am not sure how difficult it would be but perhaps an implementation idea could be to supply two values inside the aaData object
eg...
[code]
{"aaData":[
[
28,
"00011",
"PY/66732",
"Someones Name",
{
display : "ABCD",
order : "SomeValueThatShouldDisplaySecondWhenOrderedAlphabetically"
}
],
[
65,
"00012",
"PY/54356",
"Protected For Integrity",
{
display : "EFGH",
order : "AnotherValueTheShouldDisplayFirstWhenOrderedAlphabetically"
}
]
]}
[/code]
Hopefully this is easy enough to understand, I am relatively new to reporting problems (if as alluded to previously this is a problem at all)
This discussion has been closed.
Replies
There isn't a v2 of DataTables! At least not yet. There might be in a few years...
The problem you are seeing is that you are manipulating the DOM, but not telling DataTables that you have changed the data. See: http://datatables.net/faqs#append .
You need to use the API to manipulate the table if you want DataTables to be aware of the changes you are making - otherwise it can't know that the data has changed!
Allan
I could have swore I edited values on rowCallback before to manipulate what the server sent and what was displayed on screen (which at the time worked beautifully), I can't find any examples though so will have to roll with it, regards :)
Allan
So previously I was modifying the cell values in the rowCallback function like so
[code]
"rowCallback" : function(nRow, aData){
var $row = $(nRow).data("pID", aData[0]);
switch (aData[7]) {
case 0: //Clocked in
$("td:eq(6)", nRow).html("In");
$row.addClass("in");
break;
case 1: //Clocked out (Fall through)
case 2: //Absence booked
$("td:eq(6)", nRow).html("Out");
$row.addClass("out");
break;
case 3: //Pending
$("td:eq(6)", nRow).html("Pending");
$row.addClass("pending");
break;
case 4: //Unknown
$("td:eq(6)", nRow).html("Unknown");
$row.addClass("unknown");
break;
}
}
[/code]
How would one change the row class and row.data() etc or should this still be done on the rowCallback?
Regards Matt Skeldon
Allan