3

ソースとしてページからの div を渡すことで、Magniific Popup を介して表示/非表示にしようとしている ASP コードが少しあります。

<a href="#import-popup" ToolTip="Import New Proposal" class="open-popup-link">Insert New Record</a>
<div id="import-popup" class="white-popup mfp-hide">
    <span>Proposal to Import:</span>
    <asp:TextBox ID="txtPropNum" runat="server" />
    <asp:Button ID="btnImport" runat="server" Text="Import" OnClick="btnImport_Click" />
</div>

JS:

$(document).ready(function () {
    $('.open-popup-link').magnificPopup({
        type: 'inline',
        midClick: true // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href.
    });
})

div の表示と非表示は完全に問題ありません。ただし、実際にその機能を起動するようには見えませんasp:Button id="btnImport"(現在はMsgBoxの内容を表示するためのものasp:TextBoxです)。実際、ポスト/取得要求が Web コンソールに記録されていることさえわかりません。

ただし、ボタンはそのdiv内に配置TextBoxされていなくても正常に機能し、コードビハインドからもアクセスできるため、実際のクリック機能が機能していることがわかります。何が起こっているのでしょうか?Magnific はどういうわけかポストバックを妨げていますか?

4

4 に答える 4

3

の最新バージョンを使用している場合は.magnificPopup、新しいprependTo方法を使用して、セットアップ時に .net フォーム ID を送信できます。

   $('.popup-with-form').magnificPopup({
                type: 'inline',
                preloader: false,
                focus: '#name',
                prependTo: $('#form1'),
于 2015-01-26T15:07:42.267 に答える
2

以下のように、ポップアップのコンテンツを独自のページに移動してから、iframeタイプを介して壮大な呼び出しを行いました。

JS:

$(document).ready(function () {     
    $('.open-popup-link').magnificPopup({
        type: 'iframe',
        iframe: {
            markup: '<div class="mfp-iframe-scaler" style="width:100px; height:100px;">'+
                    '<div class="mfp-close"></div>' +
                    '<div class="custom-mfp-border">'+
                    '<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>' +
                    '</div>'+
                    '</div>'
            },
        midClick: true // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href.

    });

})

親ページ:

<a href="/Proposals/ImportProposal.aspx" ToolTip="Insert New Record from ACT" class="open-popup-link">Insert New Record</a>

次に、私の子ページは基本的<div>に、質問に投稿したものです。

于 2013-07-25T17:46:06.797 に答える
2

これに対して私が見つけた唯一の解決策は (API にオプションが表示されなかったため)、コア コードを変更することでした (うん!)。

私は行を変更しました:

// add everything to DOM
mfp.bgOverlay.add(mfp.wrap).prependTo( document.body );

に:

// add everything to DOM
mfp.bgOverlay.add(mfp.wrap).prependTo( $('#form1') );

ここで、form1 はフォーム要素の ID です。

于 2013-07-25T17:34:50.240 に答える
0

prependTo: $('#form1') を追加するとうまくいきました! VS 2010 の使用

于 2015-04-08T14:23:32.290 に答える