0

私はasp.net Webフォームプロジェクトで作業していますが、これはこれまでのところ、fancyboxユーザーがリンクをクリックするとフォームがファンシーボックスポップアップとして表示されて正常に動作します。しかし、URL ルーティングを実装すると同じことが機能しません。ルーティングは正常に機能し、画像は正常に表示され、css は機能しますが、ファンシーボックスのポップアップをブロックし、従来のフォームではなくタブに同じフォームを表示する方法がいくつかあります。fancybox

ファイルのパスを変更しようとしましたfancybox scriptが、うまくいきません。

URL ルーティングなしのサンプル リンク

fancyboxポップアップに単純なasp.net Webフォームを表示するための登録リンクがあるページの同じコード。

ページの一部でも更新パネルを使用しているため、関数を使用してスクリプトを再初期化しています。再初期化したスクリプトの一部を削除しようとしましたfancyboxが、それでも機能しませんResolveClientUrl。機能しない記事で提案されているように使用しました。

この点で助けていただければ幸いです

サンプルコード

<script src='<%=ResolveClientUrl("~/fancybox/jquery.fancybox-1.3.4.js")%>' type="text/javascript"></script>   
    <script src="../fancybox/jquery.fancybox-1.3.4.pack.js" type="text/javascript"></script>
    <link href="../fancybox/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
        //Code to Reinitialize Fancybox script when using update panel START
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_initializeRequest(InitializeRequest);
        prm.add_endRequest(EndRequest);
        function InitializeRequest(sender, args) { }
        function EndRequest(sender, args) { InitMyFancyBox(); }
        $(document).ready(function () {
            InitMyFancyBox();
        });
        //Code to Reinitialize Fancybox script when using update panel END

        function InitMyFancyBox() {

            //Code for Fancybox Star
            $(document).ready(function () {
                $("a.iiframe").fancybox({
                    'scrolling': 'no',
                    'width': 700,
                    'height': 450,
                    'autoScale': false,
                    'transitionIn': 'none',
                    'transitionOut': 'none',
                    'hideOnOverlayClick': false,
                    'hideOnContentClick': false,
                    'type': 'iframe'
                });
            });
            //Code for Fancybox End
        }

</script>

リンク用HTML

<asp:Panel ID="pnlRegForm" runat="server" CssClass="ActivitiesDDetails" Visible="false">
     <asp:HyperLink ID="hylRegister" runat="server" CssClass="iiframe">Register Now!</asp:HyperLink>
</asp:Panel>

コードビハインド

pnlRegForm.Visible = true;
hylRegister.NavigateUrl = "ActivityRegistration.aspx?EventID=123&Activity=33&Language=" + Helper.GetQueryStringValue("Language");

フォルダー構造 これは多言語 Web サイトであり、言語関連のページを英語、アラビア語、スペイン語などの異なるフォルダーに保管しています。

 /
 /fancybox
 /english
 /english/Activity.aspx (Lists all activities with link as SEO Friendly links)
 /english/ActivityDetails.aspx (Shows activity details & link for the fancybox popup)
 /english/ActivityRegistration.aspx (Web form to be shown as popup)

 /Spanish
 /arabic
 /css
 /someotherfolders

URL ルーティングを使用しない場合、すべて正常に動作します。URL ルーティングが実装されていると、ファンシー ボックスが停止します。スクリプト パスも変更しようとしたため、修正方法がわかりません。この点で助けていただければ幸いです

4

1 に答える 1

0

マスターページからjqueryファイルにアクセスできなかったため、問題を解決しました。Page.ResolveUrl を使用してパスを修正しました

于 2012-07-31T06:00:02.390 に答える