symfony - 如何为使用 stwe/DatatablesBundle 生成的表中的行着色?

标签 symfony datatables bundle

如何为使用 stwe/DatatablesBundle 生成的表中的行着色?我想实现类似的东西,当 status.id === 1 时整行标记为绿色(添加适当的类?),当 status.id === 2 时标记为绿色。我想使用 LineFormatter(https://github.com/stwe/DatatablesBundle/blob/v0.13/Resources/doc/lineFormatter.md) - 不是回调。请注意,status.status_id 列是不可见的(它仅与数据库中的 status.name 相关)。

这是我的 Datatable.php 文件:

public function buildDatatable(array $options = array())
{

    $this->features->set(array(
        'auto_width' => true,
        'defer_render' => false,
        'info' => true,
        'jquery_ui' => false,
        'length_change' => true,
        'ordering' => true,
        'paging' => true,
        'processing' => true,
        'scroll_x' => false,
        'scroll_y' => '',
        'searching' => true,
        'state_save' => false,
        'delay' => 0,
        'extensions' => array(),
        'highlight' => false,
        'highlight_color' => 'red'
    ));

    $this->ajax->set(array(
        'url' => $this->router->generate('proposal_results'),
        'type' => 'GET',
        'pipeline' => 0
    ));

    $this->options->set(array(
        'display_start' => 0,
        'defer_loading' => -1,
        'dom' => 'lfrtip',
        'length_menu' => array(10, 25, 50, 100),
        'order_classes' => true,
        'order' => array(array(0, 'asc')),
        'order_multi' => true,
        'page_length' => 10,
        'paging_type' => Style::FULL_NUMBERS_PAGINATION,
        'renderer' => '',
        'scroll_collapse' => false,
        'search_delay' => 0,
        'state_duration' => 7200,
        'stripe_classes' => array(),
        'class' => Style::BOOTSTRAP_3_STYLE,
        'individual_filtering' => false,
        'individual_filtering_position' => 'head',
        'use_integration_options' => true,
        'force_dom' => false,
        'row_id' => 'id'
    ));

    $this->columnBuilder
        ->add('id', 'column', array(
            'title' => 'ID',
        ))
        ->add('client.name', 'column', array(
            'title' => 'Client name',
        ))
        ->add('client.surname', 'column', array(
            'title' => 'Client surname',
        ))
        ->add('client.code', 'column', array(
            'title' => 'Client Code',
        ))
        ->add('date_add', 'datetime', array(
            'title' => 'Date added',
            'date_format' => 'LLL'
        ))
        ->add('status.name', 'column', array(
            'title' => 'Status',
        ));
//            ->add('status.status_id', 'column', array(
//                'title' => 'Status Status_id',
//            ))
}

最佳答案

您可以通过将 getLineFormatter 添加到 Datatable.php 文件来解决此问题:

public function getLineFormatter()
{
    $formatter = function ($line) {
        if($line['status_id'] == 1) {
           $line['DT_RowClass'] = 'class_name';
        }
        return $line;
    };
    return $formatter;
}

为了使其正常工作,您需要将 status_id 添加为列或隐藏列。

关于symfony - 如何为使用 stwe/DatatablesBundle 生成的表中的行着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43801020/

相关文章:

php - Silex Framework 中具有动态替换的 YAML 配置文件

symfony - 在 Symfony2 中,为什么注入(inject)服务容器而不是单个服务是一个坏主意?

javascript - 无法初始化行重新排序插件 - rowReordering 不是函数

javascript - 创建一个多选下拉列表来过滤数据表

javascript - Symfony2在组件中找不到jquery.js文件

symfony - 没有用户上下文,具有FOSHttpCacheBundle + Varnish

javascript - jQuery Datatable 重新加载数据 - json 到列

tomcat - osgi 包已解决但在运行时出现异常不受支持的 major.minor 版本 51.0

Magento:获取 bundle 产品的最高和最低价格

ios - 获取应用程序包中文件夹中的文件路径