/**** MyModelAdmin.php ****/useSilverStripe\Admin\ModelAdmin;
useSilverStripe\Forms\GridField\GridField;
useUndefinedOffset\SortableGridField\Forms\GridFieldSortableRows;
class MyModelAdmin extends ModelAdmin
{
privatestatic$menu_title = 'My Model Admin';
privatestatic$url_segment = 'my-model-admin';
privatestatic$managed_models = [
MATestObject::class,
];
publicfunctiongetEditForm($id = null, $fields = null)
{
$form = parent::getEditForm($id, $fields);
// This check is simply to ensure you are on the managed model you want adjust accordinglyif ($this->modelClass === MATestObject::class) {
$gridField = $form->Fields()->dataFieldByName($this->sanitiseClassName($this->modelClass));
// This is just a precaution to ensure we got a GridField from dataFieldByName() which you should haveif ($gridFieldinstanceof GridField) {
$gridField->getConfig()->addComponent(GridFieldSortableRows::create('SortOrder'));
}
}
return$form;
}
}
/**** MATestObject.php ****/useSilverStripe\ORM\DataObject;
class MATestObject extends DataObject
{
privatestatic$db = [
'Title' => 'Varchar',
'SortOrder' => 'Int',
];
privatestatic$indexes = [
'SortOrder' => true,
];
privatestatic$default_sort = 'SortOrder';
}