Адаптер css дерева asp.net selectedNode имеет значение null?

Я только что переключился на использование адаптеров CSS для моего элемента управления TreeView на одной из моих страниц ASPX. Теперь по какой-то причине я не могу использовать метод SelectedNode, кроме как в моем событии OnClick(). ВСЕ другие события показывают, что SelectedNode имеет значение NULL. В настоящее время я использую кучу невидимых меток для хранения информации о дереве каждый раз, когда кто-то нажимает на узел. Очень, очень, очень неправильный способ использования этого элемента управления. В чем секрет получения контроля над кодом при включенных адаптерах CSS?


person Keith Barrows    schedule 22.10.2009    source источник


Ответы (1)


Адаптер для элемента управления TreeView имеет некоторую обработку состояния представления, но вы правы, свойство выбранного узла имеет значение null при обратной передаче.

Если вы наведете курсор на корневой узел, строка состояния в браузере покажет что-то вроде:

    javascript:__doPostBack('controlid', 'eventargument');
//or
    javascript:__doPostBack('tv', 'srootnodevalue\\childnodevalue');

Вы можете поймать аргумент события в коде, который описывает узел, к которому вы обращаетесь, и его значение в виде строки, например «узел \ значение».

        if (Request.Form["__EVENTTARGET"] != null && Request.Form["__EVENTARGUMENT"] != null)
        {
            if (Request.Form["__EVENTTARGET"].Equals("tv")) //tv is my treeview control id, and the first parameter in __doPostBack()
                Tv_SelectedNodeChanged(Request.Form["__EVENTARGUMENT"]);
        }


        protected void Tv_SelectedNodeChanged(string argument)
        {
            //process the argument string 'srootnodevalue\childnodevalue'
        }

Состояние просмотра дерева, по-видимому, знает о выбранном узле адаптером, представляющим его как class="AspNet-TreeView-Leaf AspNet-TreeView-Selected" при его рендеринге.

Тем не менее, может быть, есть более приятный способ сделать это...

person CRice    schedule 26.10.2009
comment
Также взгляните на этот пост... cssfriendly.codeplex.com/Thread/ View.aspx?ThreadId=66248 - person CRice; 26.10.2009
comment
Извините, ребята, еще не возвращались к этой конкретной проблеме. Мне все еще нужно поработать над этим, но сейчас у меня есть еще 15 разных направлений. - person Keith Barrows; 13.01.2010