12

asp:Menu があり、 http://www.example.com/one.aspxを指す最上位のメニュー項目が含まれています。最上位のメニュー項目にカーソルを合わせると、ドロップダウンが表示され、選択肢の 1 つがhttp://www.example.com/one.aspxを指す Oneです。どうやら、私はこれを行うことができないので、?これを回避するには、2 番目の URL の末尾に追加します。asp:Menu で同じ場所を指す URL を 2 つ持つことができるかどうかについて興味がありましたか?

4

4 に答える 4

21

私は同じ問題を抱えており、ソリューションのわずかなバリエーションを使用しました。URLにアンカーを追加しました。例:

ところで:私はサイトマップファイルを使用していましたが、そのファイルと同じURLのノードに追加すると、エラー/例外はかなり明確になります。

同じURL'/WebSite1/MyPage.aspx'を持つ複数のノードが見つかりました。XmlSiteMapProviderでは、サイトマップノードに一意のURLが必要です。

ですから、同じURLにすることは実際には不可能だと思います。

于 2009-01-19T17:02:49.803 に答える
2

私はそうは思いません。

メニュー コントロールは、各項目の NavigateUrl プロパティを、メニューを正しく強調表示および展開するための識別子として使用します。同じ URL を持つ 2 つのノードがある場合、コントロールはどのノードを強調表示するかをどのように認識しますか?

于 2009-01-19T17:07:22.447 に答える
1

上記のコメントの私の解決策は Firefox でしか機能しないことがわかりました。これは、現在のリンクと同じリンクをクリックしても、ハッシュ タグを使用してページを更新するための改善された解決策です。

$(document).ready(function () { // refresh page when clicking menu item with current address $('#<%=aspMenu.ClientID%> a').click(function () {
   var currentUrl = location.pathname;
                var clickedUrl = $(this).attr('href');
                if (currentUrl.indexOf('#') != -1 || clickedUrl.indexOf('#') != -1){
                    if (currentUrl.indexOf('#') != -1)
                        currentUrl = currentUrl.substring(0, currentUrl.indexOf('#'));
                    if (clickedUrl.indexOf('#') != -1)
                        clickedUrl = clickedUrl.substring(0, clickedUrl.indexOf('#'));
                    if (currentUrl == clickedUrl)
                        location.reload();
 }); });

またはさらに良い: ドキュメントの準備ができたら、hrefs から数字でアンカーを削除します。

    $(document).ready(function () {
        $('#<%=aspMenu.ClientID%> a').each(function () {
            var re = /#\d/
            var url = $(this).attr('href');
            $(this).attr('href', url.replace(re, ""));
        });
    });
于 2014-06-18T12:48:07.390 に答える
0

変更するクエリ文字列変数を添付できます。

<siteMapNode url="~/UnderConstruction.aspx?x=1" title="Customer"  description="Customer" />
<siteMapNode url="~/UnderConstruction.aspx?x=2" title="User"  description="User" />
<siteMapNode url="~/UnderConstruction.aspx?x=3" title="Area"  description="Area" />
<siteMapNode url="~/UnderConstruction.aspx?x=4" title="Well"  description="Well" />
<siteMapNode url="~/UnderConstruction.aspx?x=5" title="Build Report"  description="Build" />
于 2009-02-28T22:01:38.520 に答える