aspパネルの表示に関する奇妙な問題に直面しています。私はdivを可視にするパネルの中にボタンを含む小さなフォームを持っています。クライアント側のaspパネルの表示を設定していないと、リンク上に再度表示されます。
function ShowModal() {
$('#myModal').show();
}
function CloseMyDiv() {
var modal = document.getElementById('myModal'); // this is my div
var pnlHasPriorApproval = document.getElementById('<%= pnlHasPriorApproval.ClientID %>'); // this is my pannel
pnlHasPriorApproval.style.display = "none"; // hiding pannel
modal.style.display = "none"; // hiding div
}
プロセスは次のとおりです:
<div id="myModal" class="modal" style="display: none">
<span onclick="CloseMyDiv();" id="closeSpan" class="close">×</span>
<!-- Modal content -->
</div>
<asp:Panel ID="pnlHasPriorApproval" runat="server" Style="display: none">
<input onclick="ShowModal();" type="button" value="Extract" runat="server" />
</asp:Panel>
は以下のjavascript機能であり、私はdiv要素が示され、このボタンをクリックするたびに、私は近くをクリックしたときに、div要素とパネルの両方を非表示にする必要があります。 ..これは完全に動作しています。しかし、それをクリックするたびに別のボタンが表示され、パネルは非表示のままで表示されます。
このボタンは、サーバ側での関数によって処理されます
Protected Sub lnkBtnphyCode_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkBtnphyCode.Click
....
End Sub
私はどちらもこの機能では、私のパネルの可視性を変更されていないサーバ側では何もないことを確信していますロードページイベントで発生します。とにかく、別の場所で使用されていないことを確認するために、新しいID「testDiv」を使用してdiv内にパネルを実装しました。同じプロセス(このdivをonclickで非表示にするプロセス)を実行しました。私はlnkBtnphyCodeをクリックします。代わりに、ディスプレイを使用しての隠された...しかし、私は同じ問題
私はlnkBtnphyCode_Click方法でDim v = Me.pnlHasPriorApproval.Visible
を追加したがあった:
- 私は可視性を設定することで、同じプロセスを試してみました:
ソリューションを試してみましたあなたが最初に見ることができるように、私はすでにそれを隠してしまったので、vは奇妙です。
いつも非表示にして表示されないようにする唯一の方法は、サーバーサイドの可視性を変更することです。なぜそれがjavascript(クライアント)から常に隠されているのか理解できません。
私の質問は、どうすればJavascriptを常に非表示にすることができますか?
これは奇妙な問題ではありません。サーバーは可視性を変更したことを知らないので、ページが(再)ロードされるとパネルが表示されます。いずれかのサーバー側の 'Visible'を使用し、' asp:HiddenField'に状態を保存し、すべてのページの読み込みをチェックするか、 'UpdatePanel'を使用してください – VDWWD
そしてなぜ他のdivも隠れているのですか? –