мне нужны примеры или ИДЕИ о том, как создается динамический контроль, который будет строку навигации динамически генерируемый сухари для динамической структуры Дата питание от LinqToSqlКак создать панировочные сухари, используя динамическую базу данных/LINQTOSQL?
ответ
Вы, вероятно нужны три вещи:
- Иерархия структуры в базе данных *
- Произвольный поставщик SiteMap на основе StaticSiteMapProvider читать иерархии
- A SiteMapPath управления для отображения хлебных крошек.
* Я сделал некоторые охоты вокруг, когда я хотел что-то похожее на сайт клиента, и решил, что хранение структуры пути в базе данных будет простейшими - Я дал answer previously here для произвольной карты глубины сайта Обратите внимание: если вы используете SQL2008, вы можете использовать новый тип данных HierarchyId, чтобы сделать это немного проще.
Если у вас есть такие вещи, как категории и продукты, вы, вероятно, можете уйти с более простой системой в своей базе данных.
Основные функции мне нужно было создать, чтобы решить это было что-то вроде:
/// <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
вызов в хранимые проками построить иерархию, потянув ее с LINQ должен был быть довольно сложным.
Привет у вас была взглянуть на мой обычай SitMapProvider here
Это позволяет получить структуру из метамодели с аннотацией и отдельный файл карты сайта для не страниц DD.