也许有人可以帮助我。我刚刚为Silverstripe(https://github.com/ajshort/silverstripe-gridfieldextensions)安装了Grid Field Extensions模块,因为我需要内联编辑/添加。它可以工作,但简单的TextFields显示为textareas而不是简单的文本字段。
有人可以告诉我如何改变它吗?
答案 0 :(得分:2)
模块会尝试自动计算哪个字段最适合您的变量。它会为DropdownField
变量创建Enum
,为TextareaField
变量创建Text
,依此类推。
如果您不想手动设置要内联编辑的每个变量的字段类型,则需要稍微更改变量。
TextareaField
是Text
变量的字段集。
TextField
是Varchar
变量的字段集。
对于您想要成为TextField
而不是TextareaField
的任何变量,将其类型从Text
更改为Varchar(255)
(或者您需要的字符限制很大)
否则您可以使用手动设置字段
setDisplayFields
中描述的$grid->getConfig()->getComponentByType('GridFieldEditableColumns')->setDisplayFields(array(
'FirstField' => function($record, $column, $grid) {
return new TextField($column);
},
'SecondField' => function($record, $column, $grid) {
return new TextField($column);
},
// ... etc for each field you want to be editable
));
。
{{1}}