Buenas… yo tuve que hacer lo mismo una vez y lo que hice es extender el cuadro para crear las opciones todos/ninguno
function html_cuadro_cabecera_columnas()
{
echo "<tr>\n";
echo "<td class='ei-cuadro-col-tit' colspan='6'>\n";
echo "Seleccionar <a href=\"javascript:{$this->get_objeto_js()}.seleccionar_todo(true)\">todas</a> /
<a href=\"javascript:{$this->get_objeto_js()}.seleccionar_todo(false)\">ninguna</a>
";
echo "</td>\n";
echo "</tr>\n";
parent::html_cuadro_cabecera_columnas();
}
//-----------------------------------------------------------------------------------
//---- JAVASCRIPT -------------------------------------------------------------------
//-----------------------------------------------------------------------------------
function extender_objeto_js()
{
echo "
{$this->objeto_js}.seleccionar_todo = function(seleccionar)
{
var check;
for (i in this._filas) {
check = $$(this._input_submit + i + '_eliminar');
if (!check.checked && seleccionar) {
this.seleccionar(i, 'eliminar');
}
if (check.checked && !seleccionar) {
this.seleccionar(i, 'eliminar');
}
}
}
";
}
ten en cuenta que en mi caso el evento se llamaba ELIMINAR y que el cuadro tenía 5 columnas (colspan)
espero te sirva
Saludos.