我最近开始使用 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
这个新部分的目的是显示我想存储在数据库中的查询。记录只需要查看但不可编辑。
到目前为止,我有一个名为“查询”的根节点和一个名为“一般查询”的节点。我想将所有查询列为“General Enquiries”的子节点,然后单击时,我希望能够在右侧的主要区域中显示查询详细信息。
在上面链接的第一篇博客文章中,提供了以下代码来演示如何显示子节点:
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
. 但是,似乎没有任何代码示例解释它是什么以及它是如何从数据库中实际检索数据的。
对此的任何帮助将不胜感激。