При загрузке я вызываю функцию JavaScript setTimeout(), которая скроет элемент управления .NET Panel и спрячет ее в коде, стоящем при первой загрузке. При нажатии кнопки «Сохранить» панель становится видимой, а затем перезагружается страница, с которой вызывается функция setTimeout() ... поэтому вы в основном щелкаете «Сохранить» и видите панель с «Подробности сохранены» в течение трех секунд, после чего она исчезает.Внешний файл JavaScript asp.net не найден Control.ClientID
Проблема заключается в том, что внешний файл JavaScript не может найти _pDivAlert.ClientID (я отлаживал и возвращает null). Он работает только тогда, когда код находится в теге на странице .aspx. Любые предложения относительно того, как я могу передать идентификатор клиента функции HideControl() или найти ClientID из внешнего JS-файла?
Вот мой код, любые предложения?
<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>
Я также попытался отправки ClientID в ToggleAlert() вызова, но это не сработало:
<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. Но теперь, когда отладка я вижу, что «стиль» в «control.style.display =« none »« не определен ». – Barryman9000
Я отредактировал мое сообщение, чтобы ответить на этот вопрос в вашем комментарии. – lincolnk
Ницца! Это сделало это, спасибо! – Barryman9000