我最近开始使用Umbraco,并且正在弄清楚如何将自己的自定义节添加到其中。用数据库中的记录填充自定义树
到目前为止,我已经成功地添加一个新的部分,我也开始加入了自定义树与各种博客文章等的帮助:http://www.robertgray.net.au/2011/5/10/creating-a-custom-content-tree-in-umbraco和http://www.geckonewmedia.com/blog/2009/8/3/how-to-create-a-custom-section-in-umbraco-4
这个新节的目的是为了显示我想要存储在数据库中的查询。记录只需要查看但不可编辑。
到目前为止,我有一个名为“查询”的根节点和一个名为“一般查询”的节点。我想列出所有查询作为“一般查询”的子节点,然后点击时,我希望能够在右侧的主区域显示查询详情。
在连接到上面的第一个博客文章,下面的代码已经提供给演示如何显示子节点:
using atomicf1.domain.Repositories;
using atomicf1.persistence;
using umbraco.cms.presentation.Trees;
namespace atomicf1.cms.presentation.Trees
{
public class loadDrivers : BaseTree
{
private IDriverRepository _driverRepository;
public loadDrivers(string application) : base(application)
{
_driverRepository = new DriverRepository();
}
protected override void CreateRootNode(ref XmlTreeNode rootNode)
{
rootNode.Icon = FolderIcon;
rootNode.OpenIcon = FolderIconOpen;
rootNode.NodeType = TreeAlias;
rootNode.NodeID = "init";
}
public override void Render(ref XmlTree tree)
{
var drivers = _driverRepository.GetAll();
foreach(var driver in drivers) {
var dNode = XmlTreeNode.Create(this);
dNode.NodeID = driver.Id.ToString();
dNode.Text = driver.Name;
dNode.Icon = "user.png";
dNode.Action = "javascript:openDrivers(" + driver.Id + ")";
tree.Add(dNode);
}
}
public override void RenderJS(ref System.Text.StringBuilder Javascript)
{
Javascript.Append(
@"
function openDrivers(id)
{
parent.right.document.location.href = 'plugins/atomicf1/editDriver.aspx?id=' + id;
}
");
}
}
}
从我可以工作了,它似乎是“司机”在这个例子是从_driverRepository
得出的。但是,似乎并没有任何代码示例解释什么是什么以及如何实际从数据库中首先检索数据。
对此的任何帮助将非常感激。
非常感谢你,这真的帮助我克服了被困住的一点,并清除了一些东西。 – Leah 2013-02-19 10:17:01