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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TreeVew сохранение состояния (открытости нодов) 
:(
    Опции темы
atas
Дата 8.12.2008, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!

 Извеняюсь за поднятие старой темы, но у меня стоит задача сохранение состояния (открытости нодов) TreeView.  TreeVew сворачивается в исходное состояние. TreeVew находидся на MasterPage (AJAX на MasterPage не использую, толко на Content Pages)





Код

  protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
        {
            TreeView1.DataSourceID = "SiteMapDataSource_admin";
            
            SiteMapPath1.SiteMapProvider = SiteMapDataSource_admin.SiteMapProvider;

        }
            
    }




    private void ExpandNode(TreeNode tn)
    {
        while (tn.Parent != null)
        {
            tn = tn.Parent;
            tn.Expand();
        }
    }

    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        TreeNode tn = TreeView1.SelectedNode;
        ExpandNode(tn);
        tn.Expand();
    }
  

    



Код

 <asp:TreeView ID="TreeView1" runat="server" EnableViewState="true" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" ExpandDepth="0" >
                                <HoverNodeStyle BackColor="#FFFFC0" />
                                <SelectedNodeStyle BackColor="Orchid" />
                            </asp:TreeView>



В чем может быть проблема?
Заранее спасибо
PM MAIL   Вверх
elbjarn
Дата 11.12.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



скорее всего, по клику на элемент дерева вы делаете редирект на какую-то страницу, так? тогда вполне естественно, что дерево схлопывается. потому что в пределах постбэков на странице оно хранит свое состояние во viewstate. но если вы переходите на другую страницу, вы получаете новый http-запрос, с нулевым viewstate. фактически, эти страницы никак между собой не связаны, и информацию о состоянии дерева они не разделяют. вам надо либо передавать путь в URL (path=3\6632\4324\3432) и обрабатывать эту информацию на целевой странице (TreeView.FindNode, Node.Select, Node.Expand), либо делать все в пределах одной страницы на постбэках.
PM MAIL ICQ   Вверх
atas
Дата 11.12.2008, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



elbjarn спасибо



Да так оно и есть, я исползую дерево для отображения меню из sitemap файла (Master page) и при клике на ноде загружается Content page.  У меня явно НЕ срабативает собитие TreeView1_SelectedNodeChanged


Как обойти эту проблему? Может как то на JavaScripte?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

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

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

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


 




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


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

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