سؤال

هل من الممكن استخدام أسب.نت 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> فئة ولكن لم يتم العثور على أي تلميحات عبر جوجل.

نصائح أخرى

نعم، فمن الممكن تماما.

لقد استخدمته مع ASP:Menu control وjQuery 1.2.6 مع البرنامج المساعد Superfish.ملاحظة، سوف تحتاج إلى محولات التحكم الصديقة لـ ASP.NET 2.0 CSS.

يقوم ASP.NET بإنشاء عنصر تحكم ASP:Menu كتخطيط جدول.سيجعل محول التحكم الصديق لـ CSS ASP.NET ينشئ عنصر تحكم ASP:Menu كتخطيط UL/LI داخل div.

سيسمح هذا بالتكامل السهل بين المكون الإضافي jQuery وSuperfish لأن المكون الإضافي Superfish يعتمد على تخطيط UL/LI.

يبدو أنك بحاجة إلى إنشاء UL لـ Superfish.يجب أن تكون قادرًا على القيام بذلك باستخدام ASP.Net من خريطة موقعك.أعتقد أن التحكم في خريطة الموقع سيفعل شيئًا كهذا.إذا لم يكن الأمر كذلك، فسيكون من السهل جدًا استدعاء خريطة الموقع مباشرةً من C# وإنشاء DOM برمجيًا.يمكنك إنشاء عنصر تحكم مستخدم للقيام بذلك، أو القيام بذلك في الصفحة الرئيسية.

الدفع مقالة MSDN هذه حول كيفية تعداد العقد في خريطة موقعك برمجياً.

تذكر إضافة فئات CSS لعناصر NonLink.لا تتناسب عناصر Superfish CSS معها.وإذا كنت مثلي ولديك قائمة جذرية ليست روابط، فسيظهر الأمر بشكل فظيع.ما عليك سوى إضافة عناصر AspNet-Menu-NonLink إلى ملف superfish.css وسيصبح جيدًا.

يجب أن يكون عنصر التحكم SiteMapDataSource قادرًا على الارتباط بأي عنصر تحكم مرتبط بالبيانات الهرمية.لست على دراية بالسمك الخارق ولكني أعلم أن هناك الكثير من عناصر التحكم في jQueryish للقيام بذلك.

لقد أنشأت مشروعًا صغيرًا أنيقًا يمكنك استخدامه فيه http://simplesitemenu.codeplex.com/

إنه عنصر تحكم مركب يقوم بإنشاء قائمة UL/LI متداخلة من خريطة الموقع الخاصة بك.

يتمتع!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top