로드시 .NET Panel 컨트롤을 숨기고 첫 번째로드시 코드 숨김 JavaScript setTimeout() 함수를 호출합니다. 저장 버튼을 클릭하면 패널이 표시되도록 설정 한 다음 setTimeout() 함수가 호출 된 지점에서 페이지를 다시로드합니다. 기본적으로 저장을 클릭하고 "Details Saved"가 표시된 패널을 3 초 동안 봅니다. 사라집니다.asp.net 외부 JavaScript 파일에서 Control.ClientID를 찾지 못했습니다.
문제는 외부 JavaScript 파일에서 _pDivAlert.ClientID를 찾을 수 없다는 것입니다. 디버깅했으며 null을 반환합니다. 코드가 .aspx 페이지의 태그에있는 경우에만 작동합니다. 클라이언트 ID를 HideControl() 함수에 전달하거나 외부 JS 파일에서 ClientID를 찾을 수있는 방법에 대한 제안 사항은 무엇입니까?
내 코드는 어떤 것이 있습니까?
<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>
나는 또한 ToggleAlert() 호출 내에서 클라이언트 ID를 전송 시도했다, 그러나 그것은 작동하지 않았다 :
<body onload="ToggleAlert('<%=_pDivAlert.ClientID %>')">
외부 JS를 :
function HideControl(_c) {
var control = _c;
if (control != null)
control.style.display = 'none';
}
function ToggleAlert(_c) {
setTimeout("HideControl(_c)", 3000);
}
답장을 보내 주셔서 감사합니다. HideControl() 함수를 만들었고 이제 외부 JS에서 컨트롤 ID를보고 있습니다. 하지만 지금 디버깅 할 때 "control.style.display = 'none'"의 "style"은 "undefined"입니다. – Barryman9000
귀하의 의견에있는 문제를 해결하기 위해 내 게시물을 편집했습니다. – lincolnk
니스! 그랬지, 고마워! – Barryman9000