Я хотел бы показать два Kartik’s Gridviews (с редактируемые столбцы) в пределах одной формы.
Проблема в том, что если я хочу отредактировать значение во втором виде сетки, откроется редактируемое всплывающее окно для строки ответа на первый вопрос в первом виде сетки.
Что касается html, то идентификаторы редактируемых файлов одинаковы для двух видов сетки.
Картина из двух видов сетки; редактируемый во второй сетке нажал.
Определение двух видов сетки в представлении:
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,
]);
Как я могу изменить идентификаторы редактируемых файлов?
Вы не можете использовать один и тот же $ gridColumns в обоих GridView. Вы должны дать форме (редактируемому всплывающему окну) и полю ввода в ней уникальный HTML-идентификатор. Что-то похожее:
[
'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',
],
];
},
],
Других решений пока нет …