2009-03-30 6 views
0

J'essaie d'accéder aux propriétés de contrôle et bien qu'il fonctionne très bien dans IE6, en FF3, il échoue. Je fais:Obtenir des propriétés de contrôle avec javascript dans Firefox

alert(document.getElementById(gridViewCtlId).style.display); 
    alert(document.getElementById(gridViewCtlId).style); 

Et le premier montre une fenêtre vide tandis que le second montre 'undefined'.

je fais

alert(document.getElementById(gridViewCtlId).id); 

et je reçois le bon ID de la boîte ainsi:

alert(document.getElementById(gridViewCtlId)); 

et je reçois que dans un tableau HTML.

Cela fonctionne parfaitement dans IE mais pas FF. Que dois-je faire pour que cela fonctionne? Merci.

Edit: gridViewCtlId est défini comme:

var gridViewCtlId = '<%=GridView.ClientID%>'; 

Voici le code complet:

var itemVisible= '<%=ItemVisible.ClientID%>'; 

function onGridViewRowSelected(rowIdx) 
{ 
    alert(document.getElementById(gridViewCtlId).style.display); 
    alert(document.getElementById(gridViewCtlId).style); 
    if (document.getElementById(gridViewCtlId).disabled == false) 
    { 
     alert("hi1"); 
     var selRowCCA = getSelectedRow(rowIdx); 
     if (curSelRow != null) 
     { 
      alert("hi2"); 
      var previousRow = getSelectedRow(previousRowIndx); 

      var CountIdx = previousRowIndx % 2; 
      if (document.getElementById(itemVisible) == null) 
      { 
       if (CountIdx == 0) 
       { 
        alert("hi"); 
        previousRow.style.backgroundColor = 'Silver'; 
       } 
       else 
       { 
        previousRow.style.backgroundColor = 'White'; 
       } 
      } 
     } 

     if (null != selRow) 
     { 
      alert("new"); 
      previousRowIndx = rowIdx; 
      curSelRow = selRow; 
      selRow.style.backgroundColor = 'Red'; 
     } 
    } 
} 

Il est à peu près onclick où je dois appeler cette fonction pour la remettre à son origine couleur (en utilisant des rangées de couleurs alternées). IE, cela fonctionne bien. Si je fais la première alerte

alert(document.getElementById(gridViewCtlId).disabled); 

Je deviendrais vrai ou faux. La raison pour laquelle il est comme ça parce que quelqu'un va entrer quelque chose dans une zone de texte et la première gridview va remplir en fonction de ce qui est dans ce textbox. Puis, quand quelqu'un a sélectionné quelque chose dans la première grille, gridview va être désactivé, puis remplir une seconde. Donc, j'ai un problème en vérifiant la partie désactivée du gridview.

+0

Vous avez manqué "" autour de l'ID de l'élément dans l'appel de getElementById ou est-ce une faute de frappe dans les questions? – AnthonyWJones

+0

Ce n'est pas défini par: var gridViewCtlId = '<% = GridView.ClientID%>'; –

Répondre

0
<div id="test"> 
</div> 
<script type="text/javascript"> 
var gridViewCtlIdCCA = 'test'; 
alert(document.getElementById(gridViewCtlIdCCA).style); 
</script> 

Alertes [object CSSStyleDefintion] dans Firefox 2 et 3.

Si .style où non défini, .style.display produirait une erreur, pas alerter une boîte de dialogue vide (à moins que vous capturez window.onerror).

Pouvez-vous créer un SSCCE qui illustre le problème. Plus d'informations sur SSCCE disponible here.

Questions connexes