Chciałbym wyświetlić dwa Gridviews Kartika (za pomocą edytowalny kolumny) w jednym formularzu.
Problem polega na tym, że jeśli chciałbym edytować wartość w drugim widoku siatki, edytowalne okienko otwiera się dla odpowiadającego wiersza w pierwszym widoku siatki.
Patrząc na html, identyfikator edytorów jest taki sam dla obu przeglądów.
Obrazek z dwóch siatek; można edytować w drugiej siatce.
Definicja dwóch widoków siatki w widoku:
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,
]);
Jak mogę zmienić identyfikatory edytorów?
Odpowiedzi:
1 dla odpowiedzi № 1Nie można użyć tych samych kolumn $ gridColumns w obu GridView. Musisz nadać formularzowi (edytowalne okienko) i pole wejściowe w nim unikalny identyfikator HTML. Coś podobnego:
[
"class" => "kartikgridEditableColumn",
"attribute" => "name",
"editableOptions" => function ($model, $key, $index) {
return [
"formOptions" => [
"id" => "gv1_" . $model->id . "_form_name",
"action" => yiihelpersUrl::to(["recipe-lang/index"])
],
"options" => [
"id" => "gv1_" . $model->id . "_name",
],
];
},
],