Magento 2.1 : Grid duplicate checkbox id_ issue on add new and edit form
-
06-10-2020 - |
Question
<input name="" value="3" id="id_3" class="checkbox admin__control-checkbox" checked="checked" type="checkbox">
I Want to check/unchecked the tags and holidays to attach them to my store as shown in the picture, but the ids of the checkboxes conflict with each other;as they appear duplicate from both tags and holidays- if you check id 3 of holiday it will also check the id 3 of tags, in both grids the ids appear in the format id="id_3".How can I change the format id_x to something like idz_x .
protected function _prepareColumns()
{
$this->addColumn(
'in_gmaps',
[
'header_css_class' => 'a-center',
'type' => 'checkbox',
'type' => 'checkbox',
'name' => 'in_gmaps',
'values' => $this->_getSelectedProducts(),
'index' => 'holiday_id',
]
);
$this->addColumn(
'holiday_id',
[
'header' => __('ID'),
'sortable' => true,
'index' => 'holiday_id',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id'
]
);
$this->addColumn('holiday_name', [
'header' => __('Title'),
'align' =>'left',
'index' => 'title',
]);
$this->addColumn('holiday_name', ['header' => __('Holiday Name'), 'index' => 'holiday_name']);
$this->addColumn('holiday_description', ['header' => __('Holiday Description'), 'index' => 'holiday_description']);
$this->addColumn(
'position',
[
'header' => __('Position'),
'type' => 'number',
'index' => 'position',
'editable' => 'false'
]
);
return parent::_prepareColumns();
}
And the entire row is
<tr title="#" class="even _clickable">
<td class="col-in_gmaps">
<label class="data-grid-checkbox-cell-inner" for="id_3">
<input name="" value="3" id="id_3"
class="checkbox admin__control- checkbox" type="checkbox">
<label for="id_3"></label></label>
<td class="col-ol_id">3</td></tr>
Solution
I solved this issue , if someone encounters a similar situation - you can resolve the conflict by adding 'use_index' => true in your _prepareColumns() method. This allows you to choose your custom column ,which can be used as your index for ids.
protected function _prepareColumns()
{
$this->addColumn(
'in_xyz',
[
'header_css_class' => 'col-select col-massaction',
'column_css_class' => 'col-select col-massaction',
'type' => 'checkbox',
'name' => 'in_xyz',
'values' => $this->_getSelectedProducts(),
'index' => 'hu',
'use_index' => true
]
);
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange