Take the community feedback survey now.
AI OnAI Off
Take the community feedback survey now.
Actually, the same problem has occurred to me; FileSystemDataSource is used in the legacy code (for a TreeView), but does not exist for the new Media-based file system.
Here's some code to work on as a base (it lacks icons and sorting):
public class Root : IHierarchicalEnumerable
{
public ContentReference RootLink { get; set; }
public Root(ContentReference rootLink)
{
RootLink = rootLink;
}
public IEnumerator GetEnumerator() { return new List<IContent> { DataFactory.Instance.Get<IContent>(RootLink) }.GetEnumerator(); }
public IHierarchyData GetHierarchyData(object obj) { return new Node((IContent)obj, null); }
}
public class Children : IHierarchicalEnumerable
{
public Node ParentNode { get; set; }
public Children(Node parentNode)
{
ParentNode = parentNode;
}
public IEnumerator GetEnumerator() { return ParentNode.Content.ContentLink.GetChildren<IContent>().GetEnumerator(); }
public IHierarchyData GetHierarchyData(object obj) { return new Node((IContent)obj, ParentNode); }
}
public class Node : IHierarchyData
{
public IContent Content { get; set; }
public Node Parent { get; set; }
public Node(IContent content, Node parent)
{
Content = content;
Parent = parent;
}
public bool HasChildren { get { return DataFactory.Instance.GetChildren<IContent>(Content.ContentLink).Any(); } }
public object Item { get { return Content; } }
public string Path
{
get
{
var node = this;
var str = string.Empty;
do
{
if(str != string.Empty)
{
str += "/";
}
str += node.Content.Name;
} while ((node = node.Parent) != null);
return str;
}
}
public string Type { get { return Content.GetType().Name; } }
public IHierarchicalEnumerable GetChildren() { return new Children(this); }
public IHierarchyData GetParent() { return Parent; }
}
How to use it:
FileTree.DataSource = new Root(content.ContentLink);
FileTree.DataBind();
Hello!
I ett uppgraderingsprojekt till EPiServer 7.5 används FileSystemDataSource-kontrollen för att lista filer i en asp:TreeView. Detta fungerar inte för nya mediaystemet eftersom FSDS-kontrollen är byggd för UFS. Finns det en ny kontroll för detta eller är det roll-your-own-dags?
Någon som stött på samma problem?
Gracias.