0

私のasp.netアプリケーションには、2つのiframeを持つページがあります。これらのフレームの上には、いくつかのリンク ボタンがあります。これらのボタンが押されると、2 つの iframe の src が変更されます。以下に、これを行うために使用しているクライアント側のコードと JavaScript を示します。問題は、iframe の 1 つの src を変更するだけでなく、これらのボタンのいずれかを押すと、ページ全体が更新されることです。(メインフレームに表示される最初のページにログインするまでリンクボタンを使用できないため、これが更新されていることがわかります。ログイン後、親への呼び出しを介してボタンが表示されます-window.parent.loginSuccess() )。それらのいずれかがクリックされると、iframe のログイン ページに戻り、ボタンが表示されなくなります。) これがコードです。ご協力ありがとうございました。

<body id="bodysty">
<div id="fstyle" class="daform">
    <form id="form1" runat="server">
    <div id="master">
    <div id="topthing"> <asp:LinkButton ID="lbtnControlPanel" onclientclick="CPhit()" runat="server" style="display:none">Control Panel</asp:LinkButton> <asp:LinkButton ID="lbtnAddClient" runat="server" onclientclick="AddClientHit()" style="display:none">Add Client</asp:LinkButton> <asp:LinkButton ID="lbtnManageClients" runat="server" onclientclick="ManageClientsHit()" style="display:none">Manage Clients</asp:LinkButton> <asp:LinkButton ID="lbtnAdmin" runat="server" onclientclick="ManageClientsHit()" style="display:none">Admin Options</asp:LinkButton></div>
    <div id="leftcontrol">
    <iframe id="LeftIframe" runat="server" ></iframe>
        </div>
    <div id="mainbodyform">

    <iframe id="ContentIframe" runat="server" src="Login.aspx" class="mainiframe" ></iframe>
    </div>
    </div>
    </form>
    </div>
</body>
</html>
<script language="javascript">
    function CPhit() {
        document.getElementById("ContentIframe").src = "LoginNotes.aspx";
    }
    function AddClientHit() {
        document.getElementById("ContentIframe").src = "NewCustomer.aspx";
    }
    function loginSuccess() {
        document.getElementById('lbtnControlPanel').style.display = 'inherit'
        document.getElementById('lbtnAddClient').style.display = 'inherit'
        document.getElementById('lbtnManageClients').style.display = 'inherit'
        document.getElementById('lbtnAdmin').style.display = 'inherit'
    }
</script>

コードビハインドには、このページを処理するコードはなく、単にナビゲーション用です。何か案は?ご協力ありがとうございました。

4

2 に答える 2

2

クリックしている項目のデフォルトのクリック アクションをキャンセルする必要があります。

簡単な方法は、クリック イベントで false を返すことです。

onclientclick="CPhit(); return false;" 

より良い方法はpreventDefault()です

于 2012-12-13T20:04:30.593 に答える
0

ボタンTryの動作に関係している可能性があります

event.stopPropagation() or  window.event.cancelBubble = true 

あなたのJS関数で

于 2012-12-13T20:04:24.527 に答える