我想半智能地制作CAML查询 - 因为我可以给它一个标题(这是最终用户看到的)并且它查找相应的“标题”以作为CAML查询的一部分传递:< / p>
var caml = "<OrderBy><FieldRef Name='" + field + "'/></OrderBy>";
看起来我可以使用对象模型迭代列表的Fields集合,然后键入Title属性以与用户看到的内容进行比较。我的问题在于StaticName与InternalName的使用。我的内容+ MSDN文档似乎表明InternalName是在上面的代码中使用和替换 field 的正确属性 - 特别是因为无法修改InternalName。
有人能说清楚这个吗?
答案 0 :(得分:7)
在msdn论坛上查看这个问题:
在CAML中创建站点列时,只需要“Name”属性,该属性映射到对象模型中的SPField.InternalName,您不必设置StaticName属性。相应地,SPField.InternalName和SPField.StaticName将返回相同的值。 但是,如果在CAML中设置StaticName属性,则SPField.InternalName将返回Name属性中指定的值,SPField.StaticName将返回StaticName属性中指定的值。