我在 EPI CMS 中有以下树:
[Root]
.
.
--[Lobby] ID=1
--Foo1
--Foo2
--Foo3
--[ContainerOfSubFoo] ID=2
--SubFoo1
--SubFoo2
--SubFoo3
我希望在编辑 Foo1 时拥有所有 SubFoo 的复选框。
我现在拥有的是这样的:
private static List<SelectItem> GetSubFoos()
{
PageReference pRef = new PageReference(2); //(ID=2 is my container page - ContainerOfSubFoo)
PageData root = DataFactory.Instance.GetPage(pRef);
var pages = DataFactory.Instance.GetChildren<Models.Pages.SubFoo>(root.ContentLink);
List<SelectItem> targetsList = new List<SelectItem>();
foreach (var target in pages)
{
targetsList.Add(new SelectItem() { Value = target.ContentLink.ID.ToString(), Text = target.SubFooProperty });
}
return targetsList;
}
这工作正常,但我不想使用 ID=2,我希望 GetSubFoos “向上”(到 Lobby)然后“向下”到第一个 ContainerOfSubFoo 并获取 SubFooType 的所有子项
GetSubFoo 方法在 Foo 类上,如果需要,我可以提供 SelectionFactory 的代码。
我现在看到的另一个问题是复选框“V”不保存:/(字符串以逗号分隔的值保存,但复选框均未选中
这是通过为 ID 添加 .ToString() 来解决的