SilverStripe:如何设置/指定GridField自定义操作按钮的图标
我正在做一个SilverStripe项目。在我的项目中,我试图创建一个GridField自定义按钮。我遵循官方文件。以下是SilverStripe官方页面上的课程表SilverStripe:如何设置/指定GridField自定义操作按钮的图标,silverstripe,silverstripe-4,Silverstripe,Silverstripe 4,我正在做一个SilverStripe项目。在我的项目中,我试图创建一个GridField自定义按钮。我遵循官方文件。以下是SilverStripe官方页面上的课程表 class GridFieldCustomAction implements GridField_ColumnProvider, GridField_ActionProvider, GridField_ActionMenuItem { public function getTitle($gridField, $record
class GridFieldCustomAction implements GridField_ColumnProvider, GridField_ActionProvider, GridField_ActionMenuItem
{
public function getTitle($gridField, $record, $columnName)
{
return 'Custom action';
}
public function getCustomAction($gridField, $record)
{
if (!$record->canEdit()) {
return;
}
return GridField_FormAction::create(
$gridField,
'CustomAction'.$record->ID,
'Custom action',
"docustomaction",
['RecordID' => $record->ID]
)->addExtraClass(
'action-menu--handled'
);
}
public function getExtraData($gridField, $record, $columnName)
{
$field = $this->getCustomAction($gridField, $record);
if (!$field) {
return;
}
return $field->getAttributes();
}
public function getGroup($gridField, $record, $columnName)
{
return GridField_ActionMenuItem::DEFAULT_GROUP;
}
public function augmentColumns($gridField, &$columns)
{
if (!in_array('Actions', $columns)) {
$columns[] = 'Actions';
}
}
public function getColumnAttributes($gridField, $record, $columnName)
{
return ['class' => 'grid-field__col-compact'];
}
public function getColumnMetadata($gridField, $columnName)
{
if ($columnName === 'Actions') {
return ['title' => ''];
}
}
public function getColumnsHandled($gridField)
{
return ['Actions'];
}
public function getColumnContent($gridField, $record, $columnName)
{
$field = $this->getCustomAction($gridField, $record);
if (!$field) {
return;
}
return $field->Field();
}
public function getActions($gridField)
{
return ['docustomaction'];
}
public function handleAction(GridField $gridField, $actionName, $arguments, $data)
{
if ($actionName !== 'docustomaction') {
return;
}
// perform your action here
// output a success message to the user
Controller::curr()->getResponse()->setStatusCode(
200,
'Do Custom Action Done.'
);
}
}
我正在努力为按钮添加自定义图标或指定按钮的样式类。我可以更改列类名称。但是我找不到按钮的方法。如何实现这一点?您可以使用setAttribute('classNames','font-icon-')实现这一点代码> i、 e.对于“编辑”图标,代码如下所示:
return GridField_FormAction::create(
$gridField,
'CustomAction'.$record->ID,
'Custom action',
"docustomaction",
[
'RecordID' => $record->ID
]
)
->addExtraClass('action-menu--handled')
->setAttribute('classNames', 'font-icon-edit');
您可以在此页面上找到所有可用图标:
在您的示例代码中,您试图在何处设置图标?您好,我尝试将HTML代码放入getTitle方法中。它不起作用。我仍然找不到一个地方去做那件事。我该怎么做?