gpt4 book ai didi

php - Silverstripe 3.4 gridfieldextensions GridFieldEditableColumns

转载 作者:搜寻专家 更新时间:2023-10-31 21:02:03 28 4
gpt4 key购买 nike

我在 GridFieldConfig_RelationEditor 上使用 gridfieldextensions 和 GridFieldEditableColumns。

How can the GridField - Actions be moved to the right?

[![在此处输入图片描述][1]][1]

类 StaffCatObject 扩展了 DataObject

    private static $many_many = array(
'Staffs' => 'Staff'
);

private static $many_many_extraFields = array(
'Staffs' => array(
'SortOrder' => 'Int',
'Display' => 'Boolean(1)'
),
);

public function getCMSFields() {
$fields = parent::getCMSFields();

.......

$GridFieldConfig = GridFieldConfig_RelationEditor::create();
$GridFieldConfig->removeComponentsByType('GridFieldPaginator');
$GridFieldConfig->addComponent(new GridFieldPaginator(20));
$GridFieldConfig->addComponent(new GridFieldEditableColumns());
$GridFieldConfig->addComponent( new GridFieldDeleteAction());
$items = $this->Staffs();
if (class_exists('GridFieldOrderableRows') && !$items instanceof UnsavedRelationList) {
$GridFieldConfig->addComponent(new GridFieldOrderableRows('SortOrder'));
}

$gridfield = new GridField("Staff", $this->StaffCatTitle, $this->Staffs()->sort('SortOrder'), $GridFieldConfig); //->sort('SortOrder')

$gridfield->getConfig()->getComponentByType('GridFieldEditableColumns')->setDisplayFields(array(

'Display' => array(
'callback' => function ($record, $column, $gridfield) {
return new CheckboxField('Display');
},
'title' => 'Display'
),

'AdImpressum' => array(
'title' => 'Ad Impressum',
'field' => 'CheckboxField'
)
));


$fields->addFieldToTab('Root.Main', $gridfield);

return $fields;

类 Staff 扩展了 DataObject

private static $belongs_many_many = array(
'StaffCatObjects' => 'StaffCatObject'
);

static $summary_fields = array(
'Thumbnail' => 'Thumbnail',
'StaffTitle' => 'Name',
'Email' => 'Email',
'CheckDisplay' => 'wird angezeigt in'
);

最佳答案

您正在追加 GridField 的末尾。一种解决方案是使用以下代码清空 Actions 列:

$config->removeComponentsByType('GridFieldDeleteAction');
$config->removeComponentsByType('GridFieldEditButton');

在创建 GridField 之后,然后在使用以下代码添加 GridFieldEditableColumns 之后读取它们:

$config->addComponent(new GridFieldEditButton());
$config->addComponent(new GridFieldDeleteAction());

提示:您的第一次初始化是不必要的:

$GridFieldConfig = GridFieldConfig_RelationEditor::create();
$GridFieldConfig->removeComponentsByType('GridFieldPaginator');
$GridFieldConfig->addComponent(new GridFieldPaginator(20));
$GridFieldConfig->addComponent(new GridFieldEditableColumns());
$GridFieldConfig->addComponent( new GridFieldDeleteAction());

这可以通过以下方式完成:

$GridFieldConfig = GridFieldConfig_RelationEditor::create(20);

更多信息在这里:https://github.com/silverstripe/silverstripe-framework/blob/3.4.5/forms/gridfield/GridFieldConfig.php#L232

关于php - Silverstripe 3.4 gridfieldextensions GridFieldEditableColumns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40068351/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com