Я не знаю, это правильный путь или нет, чтобы исправить эту проблему. Но это работает для меня.
Я устанавливаю innerHTML для ячейки сетки по индексу строк и индексу ячеек.
В приведенном ниже коде this.TravelReportList
мой объект панели сетки ExtJS
rowIndex
Я получаю событие нажатия на ячейку.
ниже строки кода, устанавливающего значок воспроизведения и всплывающую подсказку «Paly» для ячейки
this.TravelReportList.getView().getNode(rowIndex).cells[1].innerHTML = '<div unselectable="on" class="x-grid-cell-inner x-grid-cell-inner-action-col" style="text-align:center;"><img role="button" alt="" src="http://192.168.1.100:8088/arabitra/public/fleet/images/play-icon.png" class="x-action-col-icon x-action-col-0" data-qtip="Play"></div>';
ниже строки кода, устанавливающего значок паузы и подсказку «Пауза» для ячейки
this.TravelReportList.getView().getNode(rowIndex).cells[1].innerHTML = '<div unselectable="on" class="x-grid-cell-inner x-grid-cell-inner-action-col" style="text-align:center;"><img role="button" alt="" src="http://192.168.1.100:8088/arabitra/public/fleet/images/pause-icon.png" class="x-action-col-icon x-action-col-0" data-qtip="Pause"></div>';
Мой окончательный код ниже
columns: [{
xtype: 'actioncolumn',
flex: 0.4,
text: 'play',
sortable: false,
menuDisabled: true,
align: 'center',
items: [{
icon: FLEET_SERVER_URL + 'images/play-icon.png',
tooltip: 'Play',
scope: this,
handler: function (grid, rowIndex, colIndex) {
if (this.tripPlayConf.rowIndex == rowIndex) {
if (this.pause == false) {
this.TravelReportList.getView().getNode(rowIndex).cells[1].innerHTML = '<div unselectable="on" class="x-grid-cell-inner x-grid-cell-inner-action-col" style="text-align:center;"><img role="button" alt="" src="http://192.168.1.100:8088/arabitra/public/fleet/images/play-icon.png" class="x-action-col-icon x-action-col-0" data-qtip="Play"></div>';
this.pause = true;
}
else {
this.TravelReportList.getView().getNode(rowIndex).cells[1].innerHTML = '<div unselectable="on" class="x-grid-cell-inner x-grid-cell-inner-action-col" style="text-align:center;"><img role="button" alt="" src="http://192.168.1.100:8088/arabitra/public/fleet/images/pause-icon.png" class="x-action-col-icon x-action-col-0" data-qtip="Pause"></div>';
this.pause = false;
}
}
}
}]
}]