使用javascript在ModelAdmin中显示隐藏DataObject列

时间:2016-03-10 10:40:26

标签: javascript php silverstripe modeladmin

对于在同一个ModelAdmin中为同一个DataObject显示的列,用户有许多不同的首选项,并希望为自己的会话控制它们。

鉴于以下数据对象......

class MyDataObject extends DataObject {
    static $db = array(
        'Name'      => 'Varchar',
        'Date'      => 'SS_DateTime',
        'Number'    => 'Decimal(8,2)',
    );
    public static $summary_fields = array(
        'Name',
        'Date',
        'Number'
    );
}

...以及以下的ModelAdmin ......

class MyModelAdmin extends ModelAdmin {
    static $mangaged_models = array(
    'MyDataObject',
    );  
    static $url_segment = 'mymodeladmin';
    static $menu_title = 'MyModelAdmin';
    static $menu_priority = 9;
}

...是否有一个简单的javascript解决方案(我想会存储在cookie中选择的列)或更多程序化(即php),它将控制每个用户的列 - 允许每个用户选择他们想要的列,它会在会话之间记住它吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

如评论中所述,您可以查看此模块,该模块应该为您提供您需要的功能。

https://github.com/smindel/silverstripe-GridFieldAddOns/blob/master/docs/en/GridFieldUserColumns.md

来自文档:

只需将以下代码添加到mysite / _config.php

的末尾即可
Member::add_extension('GridFieldUserColumnsExtension');
Object::useCustomClass('GridFieldConfig_RecordEditor', 'GridFieldConfig_ExtendedRecordEditor');
Object::useCustomClass('GridFieldConfig_RelationEditor', 'GridFieldConfig_ExtendedRelationEditor');

Screenshot of the column selector