如何从TreeNode获取文档属性数组

本文关键字:文档 属性 数组 获取 TreeNode | 更新日期: 2023-09-27 17:51:02

是否可以从Kentico TreeNode对象获得文档属性的数组/列表?

我的用例是我想写一个包装自定义文档类型的类。该类将有一个方法输出一个格式化字符串,该字符串包含用户在CMSDesk中输入的值。

如果我提前知道属性的名称,我可以做以下操作:

(TreeNode)node.GetValue("Key");

但是,因为属性可以在CMS站点管理器的文档类型中添加或删除,所以我不想在类中硬编码任何字符串。

相反,我想像这样访问它们:

string[] keys = (TreeNode)node.GetKeys();
Dictionary<string, string> dictionary = new Dictionary<string, string>();
foreach(string key in keys)
{
  dictionary.Add(key, node.GetValue(key));
}

我没有在TreeNode对象上看到一个方法,它会给我我正在寻找的数据——有办法做到这一点吗?

如何从TreeNode获取文档属性数组

这可能取决于您是创建新的TreeNode还是从Content Tree中检索它。

如果您使用SelectSingleNodeSelectNodes来填充您的node对象,那么node.ColumnNames将为您提供该节点类返回的所有列/字段的列表。

foreach (string column in node.ColumnNames)
{
     //do something helpful with each one
     string value = ValidationHelper.GetString(node.GetValue(column), string.Empty);
}