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

时间:2014-03-19 18:06:37

标签: c# kentico

是否可以从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对象上看到可以提供我正在寻找的数据的方法 - 有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

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

如果您使用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);
}