0

我想在一个表单中显示两个 Kartik 的 Gridviews(带有可编辑的列)。

问题是,如果我想在第二个网格视图中编辑一个值,可编辑弹出窗口会为第一个网格视图中的对应行打开。

查看html,两个gridviews之间的可编辑项的id是相同的。

两个网格视图的图片;单击第二个网格中的可编辑。

视图中两个gridview的定义:

echo GridView::widget([
    'id' => 'your_gridview_one',
    'dataProvider'=>$dataProvider,
    'columns'=>$gridColumns,
    //'filterModel' => $searchModel,
    'showHeader' => true,
]);

 echo GridView::widget([
    'id' => 'your_gridview_two',
    'dataProvider'=>$secondDataProvider,
    'columns'=>$gridColumns,
    //'filterModel' => $searchModel,
    'showHeader' => true,
]);

如何更改可编辑项的 ID?

4

1 回答 1

2

您不能在两个 GridView 中使用相同的 $gridColumns。您必须为表单(可编辑的弹出窗口)和其中的输入字段提供一个唯一的 HTML id。相似的东西:

[
    'class' => 'kartik\grid\EditableColumn',
    'attribute' => 'name', 
    'editableOptions' => function ($model, $key, $index) {
        return [
            'formOptions' => [
                'id' => 'gv1_' . $model->id . '_form_name',
                'action' => \yii\helpers\Url::to(['recipe-lang/index'])
            ],
            'options' => [
                'id' => 'gv1_' . $model->id . '_name',
            ],
        ];
    },
],
于 2017-02-23T22:11:49.843 回答