読み込み時に、.NET パネル コントロールを非表示にする JavaScript setTimeout() 関数を呼び出し、最初の読み込み時にコード ビハインドで非表示にします。保存ボタンをクリックすると、パネルが表示されるように設定され、setTimeout() 関数が呼び出される時点でページがリロードされます...基本的に、保存をクリックすると、「詳細が保存されました」というパネルが 3 秒間表示されます。消えます。
問題は、外部 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() 呼び出し内で ClientID を送信しようとしましたが、うまくいきませんでした:
<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);
}