Древовидные структуры
От: Pharaoh  
Дата: 29.02.08 14:36
Оценка:
Введение: жил я раньше убого и всю работу делал в кодбихайнде, но потом дошло, как прекрасна система работы с данными в .NET, стал работать с источниками данных, радовался долго, но сейчас уткнулся носом в проблемму.

Не уж то в дотнете нет источника данных для работы с древовидными структурам?

Сразу напрашивается "как же нет, есть — вон они и xmldatasource и сайтмап и даже абстрактный HierarchicalDataSourceControl". Однако проанализировав это все, особенно последний, я ршения не нашел.
Все на что они способны: организовать навигацию и отредактировать xml'ку. А как реализовать банальный каталог товаров? Напрашивается опять ответ HierarchicalDataSourceControl. НО как не искал не нашел в нем способа редактирования данных. Все, что нашел это.

Задача то банальна: без кодбихайнда отредактировать древовидную структуру — на каждом втором проекте встает сей вопрос. Я уже смирился с судьбой писать этот датасурс, но и это не помогло — не хватает редактирования (или моего понимания этого редактирования) чтобы полностью инкапсулироваться за датасурс.

По сему два философских вопроса к сообществу:
1) Есть ли придусмотренный микрософтом способ управления древовидными структурами? кроме xml.
2) Как вы подходите к этой задаче?

И один практический:
Мой реализованный датасурс соглашается биндить только ToString() объектов, а как сделать чтобы биндились паблик свойства?
Объект:
public class HPage : IHierarchyData
    {
        
        public Guid Id;
        public Guid Parent;
        public string Title;
        public Guid Master;
        public int Priority;
        private string path;
        ...
        public object Item
        {
            get { return this; }
        }
        public override string ToString()
        {
            return this.Title;
        }
    }

байндю в тривью так:
<asp:TreeNodeBinding DataMember="efe.HPage" ValueField="Priority" />
или так:
<asp:TreeNodeBinding DataMember="efe.HPage" ValueField="Id" />
одна и та же ошибка:
Could not bind to the 'Priority' property (specified by ValueField) while data binding TreeView. Please check the Bindings fields.

У меня есть предположение, что возможно чтобы обьект стал данными надо или интерфейс какой-то описать или как то выделить свойства — данные, но как?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.