Yii cgridview从数据不起作用向按钮添加自定义html属性

乌萨马·杰塔威

我想自定义HTML属性添加到cgridview从按钮的dataProvider,进出口使用引导Yii引导bootstrap.widgets.TbButtonColumn

我试过了

'pbs_id'=>'{$data->pbs_id}',

'pbs_id'=>'{$data["psp_id"]}',

但它以字符串形式返回

 $this->widget('bootstrap.widgets.TbGridView', array(
        'type'=>'striped bordered condensed',
        'dataProvider'=>$db_slabs_data,
        'template'=>"{items}",
        'columns'=>array(
            array('name'=> 'pbs_id', 'header'=>'Slab Id'),
            array('name'=> 'pbs_name',   'header'=>'Slab Name'),
            array(
                'htmlOptions' => array('nowrap'=>'nowrap'),
                'class'=>'bootstrap.widgets.TbButtonColumn',
                'template'=>"{update}",
                'updateButtonUrl'=>'Yii::app()->createUrl("", array("pbs_id"=>$data["pbs_id"]))',
                'buttons'=>array
                (   
                    'update' => array
                    (
                        'label'=> Yii::t('common', 'LBL_UPDATE'),
                        'icon'=>'icon-pencil',
                        'url'=>'Yii::app()->createUrl("", array("pbs_id"=>$data["pbs_id"]))',
                        'options'=>array(
                            'pbs_id'=>'{$data["psp_id"]}',
                        ),
                    ),

                ),

            ),
        ),
    )); 

广告的结果是:

<a href="" pbs_id=1" rel="tooltip" title="" pbs_id="{$data-&gt;pbs_id}" data-original-title="Update"><i class="icon-pencil"></i></a>

我该怎么做。

谢谢

乌萨马·杰塔威

我通过以下方式解决了我的问题:

在此文件/protected/extensions/bootstrap/widgets/TbButtonColumn.php内,有一种方法renderButton()

我重写此方法来呈现按钮的其他html属性:

protected function renderButton($id, $button, $row, $data) {
        if (isset($button['visible']) && !$this->evaluateExpression($button['visible'], array('row' => $row, 'data' => $data)))
            return;

        $label = isset($button['label']) ? $button['label'] : $id;
        $url = isset($button['url']) ? $this->evaluateExpression($button['url'], array('data' => $data, 'row' => $row)) : '#';
        $options = isset($button['options']) ? $button['options'] : array();

        /* added to render additional html attribute */
        if (isset($button['options']) AND !(empty($button['options']))) {
            foreach ($button['options'] as $key => $value) {
                if (preg_match('#\$(data|row)#', $value)) {
                    $options["$key"] = $this->evaluateExpression($button['options'][$key], array('data' => $data, 'row' => $row));
                } else {
                    $options["$key"] = $value;
                }
            }
        }

        /* end */

        if (!isset($options['title']))
            $options['title'] = $label;

        if (!isset($options['rel']))
            $options['rel'] = 'tooltip';

        if (isset($button['icon'])) {
            if (strpos($button['icon'], 'icon') === false)
                $button['icon'] = 'icon-' . implode(' icon-', explode(' ', $button['icon']));

            echo CHtml::link('<i class="' . $button['icon'] . '"></i>', $url, $options);
        }
        else if (isset($button['imageUrl']) && is_string($button['imageUrl']))
            echo CHtml::link(CHtml::image($button['imageUrl'], $label), $url, $options);
        else
            echo CHtml::link($label, $url, $options);
    }

并在网格内

'buttons'=>array
                (   
                    'update' => array
                    (
                        'label'=> Yii::t('common', 'LBL_UPDATE'),
                        'icon'=>'icon-pencil',
                        'url'=>'Yii::app()->createUrl("", array("pbs_id"=>$data["pbs_id"]))',
                        'options'=>array(
                            'id'=>'$data["id"]',
                            'new_attribute'=> '$data["your_key"]',
                        ),
                    ),

                ),

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Yii cgridview从数据不起作用向按钮添加自定义html属性

来自分类Dev

Yii自定义路由在Nginx中不起作用

来自分类Dev

Yii,自定义过滤器不起作用

来自分类Dev

yii2自定义验证不起作用

来自分类Dev

Yii自定义CGridView项目模板

来自分类Dev

控制器中的自定义操作在yii2中不起作用

来自分类Dev

自定义验证消息在Yii2中不起作用

来自分类Dev

自定义CFormModel的Yii验证规则不起作用

来自分类Dev

自定义验证在yii2中不起作用

来自分类Dev

自定义验证消息在Yii2中不起作用

来自分类Dev

Yii2 中 DynamicFormWidget 的自定义验证不起作用

来自分类Dev

Yii 1.3 zii.widgets.grid.CGridView将自定义函数添加到类

来自分类Dev

Yii zii.widgets.grid.CGridView自定义字段

来自分类Dev

在yii CGridView中的自定义字段上排序

来自分类Dev

自定义/扩展CGridView小部件YII

来自分类Dev

如果设置了自定义会话路径,重定向后,Yii Flash消息将不起作用

来自分类Dev

Yii createCommand不起作用

来自分类Dev

路线不起作用(yii)

来自分类Dev

Yii CGridView数据是外键

来自分类Dev

Yii Widgets CGridView显示数据

来自分类Dev

Yii cgridview下拉过滤器在第二页上不起作用

来自分类Dev

自定义按钮“操作”列,yii2

来自分类Dev

自定义按钮“操作”列,yii2

来自分类Dev

Yii CGridView自定义列标题排序图标和行链接

来自分类Dev

添加自定义后退按钮对 UINavigationBar 不起作用

来自分类Dev

yii cGridView多注释

来自分类Dev

YII CGridView错误

来自分类Dev

Yii关系Cgridview

来自分类Dev

Yii CgridView DataProvider错误