Вы правы - быстрого решения не существует.
В YUI DataTable в настоящее время (по состоянию на 2.8) отсутствует метод unselectAllColmns
для соответствия unselectAllRows
(который вызывается onEventSelectRow
).
Стоит также отметить, что onEventSelectColumn
выбирает заголовок столбца, поэтому unselectAllCells
не будет работать.
Вы можете реализовать свою собственную функцию unselectAllColumns()
следующим образом:
function unselectAllColumns (dataTable) {
var i, oColumn, oColumnSet = dataTable.getColumnSet();
for (i=0; i<oColumnSet.keys.length; i++) {
oColumn = oColumnSet.keys[i];
if (oColumn.selected) {
dataTable.unselectColumn(oColumn);
}
}
}
Это будет несколько более эффективно, чем использование getSelectedColumns()
, потому что вам не нужно будет создавать промежуточный массив только из выбранных столбцов (глядя на источник, getSelectedColumns вызывает getColumnSet и просматривает массив, как описано выше).