【问题标题】:How to pass custom data to EDataTables in YiiYii中如何将自定义数据传递给EDataTables
【发布时间】:2014-04-04 14:45:38
【问题描述】:

我正在使用 Yii EDataTables 扩展:http://www.yiiframework.com/extension/edatatables/

我有如下的 EDataTables 小部件

$this->createWidget(
    'ext.EDataTables.EDataTables', array(
        'id'           => 'items',
        'dataProvider' => $dataProvider,
        'ajaxUrl'      => '/ajax-update',
        'columns'      => array(array(
                                'user_id',
                                'email',
                                'name',
                                'created_at:date:Updated',
                                'updated_at:date:Updated',
                                )
        ),
        'options' => array(
            'bStateSave'    => false,
            'bPaginate'     => true,
        ),
    )
);

我想将自定义(值、数组或对象传递给小部件,以便我可以在行值中使用它)

我环顾了很多地方,但我找不到办法。 您能否建议如何做到这一点?

【问题讨论】:

    标签: php yii cgridview edatatables


    【解决方案1】:

    假设您有自定义列值,例如:

    $nameExp = '$this->grid->options["nameArray"][$data->user_id]';

    还有这样的数组

    $namesInArray = array(
                    '1'=>'FirstName LastName 1',
                    '2'=>'FirstName LastName 2',
                    '3'=>'FirstName LastName 3',
                    '4'=>'FirstName LastName 4',
                );
    

    传递额外数据而不是来自数据提供的可能方法是使用选项或 htmloptions 数组发送它(因为小部件的所有其他参数必须在引用的类中具有属性)

    所以你可以在 options 数组中传递对象或数组,并如下使用它

    $nameExp = '$this->grid->options["nameArray"][$data->user_id]';
    $namesInArray = array(
        '1'=>'FirstName LastName 1',
        '2'=>'FirstName LastName 2',
        '3'=>'FirstName LastName 3',
        '4'=>'FirstName LastName 4',
    );
    $this->createWidget(
        'ext.EDataTables.EDataTables', array(
            'id'           => 'items',
            'dataProvider' => $dataProvider,
            'ajaxUrl'      => '/ajax-update',
            'columns'      => array(array(
                                        'user_id',
                                        'email',
                                        'name',
                                        array('class' => 'CDataColumn', 'name' => 'Name from array options', 'sortable' => false, 'value' => $nameExp, 'type' => 'raw'),
                                        'created_at:date:Updated',
                                        'updated_at:date:Updated',
                                    )
            ),
            'options' => array(
                'bStateSave'    => false,
                'bPaginate'     => true,
                'nameArray'     => $namesInArray
            ),
        )
    );
    

    您将能够使用/访问具有该行值表达式的数组、值或对象,并在那里执行您需要的逻辑!

    【讨论】:

    • 谢谢,我会试试的。
    猜你喜欢
    • 2018-05-18
    • 2021-11-08
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    相关资源
    最近更新 更多