سؤال

أنا بحاجة إلى بعض أمثلة أو أفكار حول كيفية إنشاء التحكم الديناميكي في الخبز والتي ستولد ديناميكيًا من فتات الخبز لإطار التاريخ الديناميكي الذي يعمل به LINQTOSQL

هل كانت مفيدة؟

المحلول

ربما ستحتاج إلى ثلاثة أشياء:

  1. بنية التسلسل الهرمي في قاعدة البيانات الخاصة بك*
  2. موفر مخصص لخريطة sitemap استنادًا إلى StaticSitemapprovider لقراءة التسلسل الهرمي
  3. أ sitemappath تحكم لعرض الخبز.

* لقد قمت ببعض الصيد عندما أردت شيئًا مشابهًا لموقع العميل ، وقررت أن تخزين بنية المسار في قاعدة البيانات سيكون أبسط - لقد أعطيت أجب سابقًا هنا للحصول على خريطة موقع عمق تعسفي - لاحظ أنه إذا كنت تستخدم SQL2008 ، يمكنك استخدام الجديد التسلسل الهرمي نوع البيانات لجعل هذا أسهل بعض الشيء.

ومع ذلك ، إذا كان لديك أشياء مثل الفئات والمنتجات ، فربما يمكنك الابتعاد عن نظام أبسط في قاعدة البيانات الخاصة بك.

كانت الوظائف الرئيسية التي كنت بحاجة إلى إنشائها لحل هذه الأشياء مثل:

/// <summary>
/// Gets this SiteMaps children.
/// </summary>
/// <value>The children.</value>
public List<SiteMap> Children {
  get {
    if (null == m_Children && !m_AttemptedToLoadChildren) {
      m_AttemptedToLoadChildren = true;

      m_Children = ctx.GetSiteMapChildrenByPath(_Path, 1).ToList();

      // Sorts ascending.
      m_Children.Sort(( sm1, sm2 ) => sm1.SortOrder.CompareTo(sm2.SortOrder));
      // CMS Sorts Descending, so reverse the list.
      m_Children.Reverse();
    }

    return m_Children;
  }
}

/// <summary>
/// Gets a value indicating whether this instance has any children.
/// </summary>
/// <value>
///  <c>true</c> if this instance has children; otherwise, <c>false</c>.
/// </value>
public bool HasChildren {
  get {
    if (null != Children && Children.Any()) {
      m_HasChildren = true;
    }

    return m_HasChildren;
  }
}

/// <summary>
/// Gets this SiteMaps parent.
/// </summary>
/// <value>The parent.</value>
public SiteMap Parent {
  get {
    if (null == m_Parent && null != _ParentId) {
      m_Parent = ctx.GetSiteMap(_ParentId);
    }

    return m_Parent;
  }
}

GetSiteMap و GetSiteMapChildrenByPath اتصل بـ Procs المخزنة لبناء التسلسل الهرمي لأن سحبه مع LINQ سيكون معقدًا للغاية.

نصائح أخرى

مرحبًا ، هل ألقيت نظرة على Sitmapprovider المخصص الخاص بي هنا

يتيح لك ذلك الحصول على الهيكل من metamodel مع التعليق التوضيحي وملف sitemap منفصل للصفحات غير DD.

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