【发布时间】:2020-01-30 11:32:28
【问题描述】:
我正在从事 SilverStripe 项目。在我的项目中,我正在向 GridField 动态添加组件。实际上,我正在尝试替换现有组件。由于没有替换方法,所以我必须删除现有组件并添加新组件。
以下是我的代码
$grid = new GridField('ContentBlocks', 'Content Blocks', $this->owner->ContentBlocks(), $editor);
$grid->getConfig()
->removeComponentsByType(GridFieldAddExistingAutocompleter::class)
->addComponent(new CustomGridFieldAddExistingAutocompleter())
//configuring other components continue here
正如您在我的代码中看到的那样,我正在删除一个现有组件并添加一个新的自定义组件来替换已删除的组件。
它添加了自定义组件。但这有一个问题。问题是在前端,新组件没有添加到与被删除组件完全相同的位置。
看这个截图:
正如您在屏幕截图中看到的那样,搜索框(添加的自定义组件)脱离了添加内容块按钮所在的容器或 div。如果我没有进行替换,它们将保持在同一行如下图所示。
我在想的是,我正在寻找一种方法将它们重新组合成一行。我怎样才能做到这一点?有可能吗?
【问题讨论】:
标签: silverstripe silverstripe-4