Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отображается только корневой элемент карты сайта? custom SiteMapProvider 
:(
    Опции темы
draiv
Дата 19.3.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 23.5.2007

Репутация: нет
Всего: нет



хочу создать карту сайта, формирующуюся динамически.

создаю карту сайта, используя свой SiteMapProvider.


Код

public class DynamicSiteMapProvider : StaticSiteMapProvider
  {
    private SiteMapNode rootNode = null;

    public override SiteMapNode BuildSiteMap()
    {
      lock(this)
      {
        if (rootNode == null)
        {
          Clear();

          
          rootNode = new SiteMapNode(this, "home", "~",
            "home page", "home page");

          AddNode(new SiteMapNode(this, "browse",
            "mysite/Browse.aspx",
            "browse", "browse"), rootNode);
          
          AddNode(new SiteMapNode(this, "contact",
                                  "mysite/Contact.aspx",
                                  "contact", "contact"), rootNode);

          AddNode(new SiteMapNode(this, "Jobs",
                                  resUrlControl.ResolveClientUrl("~/Jobs.aspx"),
                                  "Jobs", "Jobs"), rootNode.ChildNodes[0]);

          AddNode(new SiteMapNode(this, "Default",
                                  resUrlControl.ResolveClientUrl("~/Default.aspx"),
                                  "Default", "Default"), rootNode.ChildNodes[0]);
        }
      }

      return rootNode;
    }

    protected override SiteMapNode GetRootNodeCore()
    {
      return BuildSiteMap();
    }

    public override SiteMapNode RootNode
    {
      get
      {
        return BuildSiteMap();
      }
    }

    protected override void Clear()
    {
      lock (this)
      {
        rootNode = null;
        base.Clear();
      }
    } 
  }



 и код aspx страницы следующий
Код

<form runat="server">
  <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
  <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" 
    ShowExpandCollapse="true">
  </asp:TreeView>
</form>  



в конфиге добавил секцию 
Код

<siteMap defaultProvider='DynamicSiteMapProvider'>
            <providers>
                <add name='DynamicSiteMapProvider' type='Keyland.Ares.WebUI.DynamicSiteMapProvider'/>
            </providers>
        </siteMap>



Почему то после этого на странице SiteMap в TreeView выводится толдько один-корневой элемент,
а чальды не выводятся, хотя под дебагом видно что они есть в обьекте SiteMap.
Почему???

(Если использовать SiteMapProvider который по умолчанию и файл .sitemap  - то выводятся все элементы из этого файла)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0656 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.