Tiempo después vuelvo a la carga con este problema que finalmente he podido resolver.
Esta función fue modificada un poco para que se pueda adaptar a casi cualquier formulario.
Creo que la función todavía podría depurarse un poco.
Código:
function CA(f,isO){
var trk=0;
for (var i=0; i<f.elements.length; i++) {
var e=f.elements[i];
if ((e.name != 'allbox') && (e.type=='checkbox')) {
if (isO != 1) {
trk++;
e.checked=f.allbox.checked;
} else {
}
}
}
}
El checkbox "maestro", que los marcará o desmarcará a todos (es importante el name):
Código:
<input name="allbox" type="checkbox" title="Marque / desmarque todos" onclick="CA(this.form);" />
Uno cualqueira de los demás checkboxes:
Código:
<input name="ActivaSeleccionada" type="checkbox" value="<%=rs.fields("ID_Oferta")%>" onclick="CCA(this.form,this);" />
La función que se encargará de la relación entre el último checkbox al marcar o desmarcar:
Código:
function CCA(f,CB) {
var TB=TO=0;
for (var i=0;i<f.elements.length;i++) {
var e=f.elements[i];
if ((e.name != 'allbox') && (e.type=='checkbox')) {
TB++;
if (e.checked)
TO++;
}
}
f.allbox.checked=(TO==TB)?true:false;
}
Espero que haya otros que les pueda servir.
Gracias a todos por su ayuda