SilverStripe删除CSV导出按钮
我试图删除SilverStripe删除CSV导出按钮,silverstripe,Silverstripe,我试图删除ModelAdmin中GridField顶部的导出到CSV按钮 我似乎找不到创建按钮的类(GridFieldExportButtonright?)。我猜有一个函数用我不熟悉的按钮/操作填充GridField。要删除关系的脚手架GridField class MyDataObject extends DataObject { ... private static $has_many= array( 'OtherDataObjects' => 'O
ModelAdmin
中GridField
顶部的导出到CSV按钮
我似乎找不到创建按钮的类(
GridFieldExportButton
right?)。我猜有一个函数用我不熟悉的按钮/操作填充GridField。要删除关系的脚手架GridField
class MyDataObject extends DataObject {
...
private static $has_many= array(
'OtherDataObjects' => 'OtherDataObject'
);
...
function getCMSFields() {
$fields = parent::getCMSFields();
if($grid = $fields->dataFieldByName('OtherDataObjects'))
$grid->getConfig()
->removeComponentsByType('SilverStripe\Forms\GridField\GridFieldExportButton');
return $fields;
}
...
}
如果您正在创建GridField,那么在创建字段时只需添加此项即可
$gridField->getConfig()->removeComponentsByType('SilverStripe\Forms\GridField\GridFieldExportButton');
如果您要查找的gridfield不在数据对象编辑表单中,并且实际上是
class MyAdmin extends ModelAdmin {
...
function getEditForm($id = null, $fields = null) {
$form = parent::getEditForm($id, $fields);
if($this->modelClass == 'MyDataObjectName') {
$form->Fields()
->fieldByName($this->sanitiseClassName($this->modelClass))
->getConfig()
->removeComponentsByType('SilverStripe\Forms\GridField\GridFieldExportButton');
}
return $form;
}
...
}
将model_importers设置为空将执行相反的操作并删除导入
class MyAdmin extends ModelAdmin {
...
static $model_importers = array();
...
}
这似乎摆脱了导入功能,而不是导出按钮。顺便说一句,这也很有价值,因为我也想对用户隐藏这一点。真的!更新内容包括删除您实际询问的按钮MyFieldName'应该是DataObject类名吗?对不起,我不明白为什么任何$db字段都应该寻址以删除导出按钮。DataObject有几个$db字段,我应该在其中放哪一个?不确定此解决方案是否用于ss3,但为了在ss4中工作,您需要写入组件的完整路径,
removeComponentsByType('SilverStripe\Forms\GridField\GridFieldExportButton')
——否则无法找到该组件。