【问题标题】:Yii2 data-* attributes not rendered using GridView ColumnYii2 data-* 属性未使用 GridView 列呈现
【发布时间】:2018-09-11 07:07:02
【问题描述】:

如何在下面的函数中添加data-id

GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        [
            'contentOptions' => ['class' => "text-center"],
            'attribute' => 'scale',
            "format"=>"Html",
            "value"=>function($model){
                return '<div class="myClass" data-id="'.$model->id.'">'.$model->scale.'</div>';
            }
        ],
    ],
]);

这里是data-id 属性,在浏览器中没有显示:

"value"=>function($model){
    return '<div class="myClass" data-id="'.$model->id.'">'.$model->scale.'</div>';
}

【问题讨论】:

    标签: yii yii2 yii2-grid


    【解决方案1】:

    您需要将列的format 更改为列的raw

    GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => [
            [
                'contentOptions' => ['class' => "text-center"],
                'attribute' => 'scale',
                "format"=>"raw",
                "value"=>function($model){
                    return '<div class="myClass" data-id="'.$model->id.'">'.$model->scale.'</div>';
                }
            ],
        ],
    ]);
    

    编辑

    除了返回htmllike,

    return '<div class="myClass" data-id="'.$model->id.'">'.$model->scale.'</div>';
    

    您可以使用yii\helpers\Html::tag($name,$content,$options[]) 创建一个div 标签,见下文。

    return Html::tag('div',$model->scale,['class'=>'myClass','data'=>['id'=>$model->id]]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 1970-01-01
      相关资源
      最近更新 更多