HeikoE: Fehler in Methode zum Tabellensplaten ausblenden

Beitrag lesen

Hi,

ich habe folgende Methode geschrieben, mit deren Hilfe ich Tabellenspalten ausblenden will, indem ich auf die entsprechende Zelle in der TH-Zeile klicke.

Diese Funktion funktioniert leider nicht, da scheinbar zufällig Zellen ausgeblendet werden, nur nicht die, deren Index ich übergebe.

Ich bin für jede Hilfe dankbar, da ich an dem Problem schon seit einiger Zeit sitze und ich bald eine Lösung brauche.

Vielen Dank

Heiko

PS: Ich habe mich schon durch etliche Foren, google und auch durch selfhtml gewühlt und bin nicht weitergekommen.

function umschalten(ums_index){

var ums_celzahl = document.getElementsByTagName("th").length;

//Vectorgroeße
 var ums_vecSize = <%=rvec.size()%>;

var ums_action = "none";
 //-1 bedeutet: Aufruf aus der Select Liste
 if(ums_index == -1){
  ums_index = document.forms[0].B002SelSpalte.options[document.forms[0].B002SelSpalte.selectedIndex].value;
  document.forms[0].B002SelSpalte.options[document.forms[0].B002SelSpalte.selectedIndex] = null;
  document.forms[0].B002SelSpalte.selectedIndex = -1;
 }
 else{
  var ums_knoten = document.getElementsByTagName("th")[ums_index].childNodes;
  var ums_value = "";
  for(var z=0; z<ums_knoten.length; z++){
  if(ums_knoten[z].nodeType == "3"){
     var ums_value = ums_value + " " + ums_knoten[z].data;
   }
  }

neueOption = new Option(ums_value,ums_index,false,false);
         document.forms[0].B002SelSpalte.options[document.forms[0].B002SelSpalte.length] = neueOption;
        document.forms[0].B002SelSpalte.selectedIndex = -1;
 }

if(document.getElementsByTagName("th")[ums_index].style.display == "none"){
  ums_action = "inline";
 }

document.getElementsByTagName("th")[ums_index].style.display = ums_action;

alert(ums_celzahl +  " "+ ums_index );

var td = "";
 for(var i=0; i<ums_vecSize;i++){
  td = document.getElementsByTagName("td")[ums_index];

if(td.className == "OkTabStdUmschaltbar" || td.className == "OkTabStdLeft"){
   document.getElementsByTagName("td")[ums_index].style.display = ums_action;
   //alert(td.className + "" + ums_index);
  }
  ums_index = ums_index*1 + ums_celzahl*1;
 }

if(document.forms[0].B002SelSpalte.length>0){
  document.forms[0].B002SelSpalte.style.display = "inline";
 }
 else{
  document.forms[0].B002SelSpalte.style.display = "none";
 }
}