**Silverstripe Version:4.11
Any idea why private static $default_sort = 'DeadLineDate DESC';
doesn’t work?
The initial code was private static $default_sort ='SortOrder';
Has anything changed regarding the $default_sort?
Thanks in advance.
**Silverstripe Version:4.11
Any idea why private static $default_sort = 'DeadLineDate DESC';
doesn’t work?
The initial code was private static $default_sort ='SortOrder';
Has anything changed regarding the $default_sort?
Thanks in advance.
You will hardly have any answer if you don’t provide a shred of information. What “doesn’t work” means in this context? What’s the code that “does not work”?
Has anything changed regarding the $default_sort?
No, it hasn’t.
I am sorry, I thought it is clear that I expected to get the list of DeadLineDate
sorted in a descending order which doesn’t work. I still get them in the order of the SortOrder id. I even tried to sort them descending using the SortOrder
$default_sort = 'SortOrder DESC';
which doesn’t work.
Is this code above wrong?
I assume your $default_sort
is being set inside some subclass of DataObject
and that DeadLineDate
is a $db
property on that class?
Where are you expecting this sort to be seen? On the frontend? In a GridField
in the CMS? What is the code you are using the get and to display the records?
Hi Guy,
Thanks for your response.
Yes, it is in a class:
class DeadLine extends DataObject {
.private static $db =
['DeadLineDate' => 'Date',
'SortOrder' => 'Int'
];.
.}
and I expect this to be seen in the admin area of that page where I use it using GridField
:
$fields->addFieldToTab('Root.Dealines', GridField::create('Deadlines', 'Deadline', $this->Deadlines(), GridFieldConfig_RecordEditor::create()->addComponent(new GridFieldSortableRows('SortOrder'))));
It looks like the GridFieldSortableRows component will adjust the DataList to keep sorting on SortOrder rather than DeadLineDate. If you no longer need the SortOrder column then just try removing the ->addComponent(new GridFieldSortableRows('SortOrder'))
.
Thanks a lot, kaftka. That was it .