En charge, j'appelle une fonction JavaScript setTimeout() qui masque un contrôle .NET Panel et le masque dans le code au premier chargement. En cliquant sur le bouton enregistrer, le panneau sera visible puis rechargera la page à quel point une fonction setTimeout() est appelée ... donc vous cliquez sur enregistrer, et vous voyez un panneau avec "Details Saved" pendant trois secondes, à quel point disparaît.asp.net external Fichier JavaScript ne trouve pas Control.ClientID
Le problème est le fichier JavaScript externe ne peut pas trouver _pDivAlert.ClientID (j'ai débogué et il renvoie null). Cela ne fonctionne que lorsque le code est dans une balise dans la page .aspx. Des suggestions sur la façon dont je peux transmettre l'ID client à la fonction HideControl() ou trouver le ClientID à partir du fichier JS externe?
Voici mon code, des suggestions?
<script language="javascript" src="Forms.js" type="text/javascript"></script>
<body onload="ToggleAlert()">
<form id="form1" runat="server">
<script type="text/javascript">
//alert the user that the details were saved
function HideControl() {
var control = document.getElementById('<%=_pDivAlert.ClientID %>');
if(control != null)
control.style.display = 'none';
}
function ToggleAlert() {
setTimeout("HideControl()", 3000);
}
</script>
J'ai aussi essayé d'envoyer le ClientID dans le ToggleAlert() appel, mais cela n'a pas fonctionné:
<body onload="ToggleAlert('<%=_pDivAlert.ClientID %>')">
externe JS:
function HideControl(_c) {
var control = _c;
if (control != null)
control.style.display = 'none';
}
function ToggleAlert(_c) {
setTimeout("HideControl(_c)", 3000);
}
Merci pour la réponse. J'ai fait une fonction HideControl(), et maintenant je vois l'ID de contrôle dans le JS externe. Mais maintenant, lors du débogage, je vois que "style" dans "control.style.display = 'none'" est "indéfini". – Barryman9000
J'ai édité mon post pour résoudre le problème dans votre commentaire. – lincolnk
Bien! C'est ce que j'ai fait, merci! – Barryman9000