質問

を使用することは可能ですか? ASP.NET jQueryを使用したweb.sitemap スーパーフィッシュ メニュー?

そうでない場合、web.sitemap ファイルで動作する、標準ベースのブラウザに依存しないプラグインはありますか?

役に立ちましたか?

解決

同じ答えを探しているときにこの質問を見つけました...みんな 言う それは可能ですが、誰も実際の解決策を教えてくれません。現在は動作しているようですので、調査結果を投稿したいと思います...

必要なもの:

私の完成した Masterpage.master 次のようなものがあります head 鬼ごっこ:

<head runat="server">
    <script type="text/javascript" src="/script/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="/script/superfish.js"></script>
    <link href="~/css/superfish.css" type="text/css" rel="stylesheet" media="screen" runat="server" />
    <script type="text/javascript">

        $(document).ready(function() {
        $('ul.AspNet-Menu').superfish();
        }); 

</script>
</head>

基本的に、jQuery Superfish メニューが機能するために必要なものはこれですべてです。ページ内 (メニューが表示される場所) は次のようになります (ベース: これらの指示):

<asp:SiteMapDataSource ID="SiteMapDataSource" runat="server"
    ShowStartingNode="false" />
<asp:Menu ID="Menu1" runat="server" 
    DataSourceID="SiteMapDataSource"
    Orientation="Horizontal" CssClass="sf-menu">
</asp:Menu>

ドキュメントに基づくと、これは機能するはずですが、実際には機能しません。その理由は、 CssClass="sf-menu" メニューがレンダリングされると上書きされ、 <ul> タグは class="AspNet-Menu". 。私はその線を考えました $('ul.AspNet-Menu').superfish(); 役立つだろうが、役に立たなかった。

もう一つ

これはハックですが(誰かが正しい解決策を教えてください)、 superfish.css ファイルと 検索と置換 SFメニューAspNet メニュー...そして出来上がり!メニューが現れました。に何らかの構成設定があると思いました asp:Menu どこに設定できるかを制御します <ul> クラスに参加しましたが、Googleでヒントが見つかりませんでした。

他のヒント

はい、それは完全に可能です。

ASP:Menu コントロールと jQuery 1.2.6 の Superfish プラグインで使用しました。注意: 次のものが必要になります。 ASP.NET 2.0 CSS フレンドリーなコントロール アダプター.

ASP.NET は、ASP:Menu コントロールをテーブル レイアウトとして生成します。CSS フレンドリー コントロール アダプターは、ASP.NET に ASP:Menu コントロールを div 内の UL/LI レイアウトとして生成させます。

Superfish プラグインは UL/LI レイアウトに依存しているため、これにより jQuery と Superfish プラグインを簡単に統合できます。

Superfish用のULを生成する必要があるようです。ASP.Net を使用してサイト マップからこれを実行できるはずです。サイトマップコントロールはこんな感じになると思います。そうでない場合は、C# から直接サイト マップを呼び出し、プログラムで DOM を生成することは非常に簡単なはずです。これを行うユーザー コントロールを構築することも、マスター ページで行うこともできます。

チェックアウト この MSDN 記事 サイト マップ内のノードをプログラムで列挙する方法について説明します。

NonLink 要素の CSS クラスを忘れずに追加してください。Superfish CSS 要素はそれらに対応していません。そして、あなたが私と同じで、リンクではないルートメニューを持っている場合、レンダリングはひどくなります。AspNet-Menu-NonLink 要素を superfish.css ファイルに追加するだけで、正常にレンダリングされるはずです。

SiteMapDataSource コントロールは、任意の階層データ バインド コントロールにバインドできる必要があります。私は superfish には詳しくありませんが、これを行うための jQuery 風のコントロールがたくさんあることは知っています。

で使用できる素敵な小さなサンプル プロジェクトを作成しました。 http://simplesitemenu.codeplex.com/

これは、サイトマップからネストされた UL/LI リストを生成する複合コントロールです。

楽しむ!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top