我正在使用我在SharePoint中构建的自定义列表。我有一个功能,它有一个事件处理程序,在激活该功能时启动。该事件处理程序调用(我可以调试并观察它执行)以下函数:
我打算该函数表现为as described here.
private void OrderFields(SPWeb web)
{
// This works fine: I get the expected SPContentType object
// There is only 1 SPContentType in ContentTypes
SPContentType contentType = web.Lists[TASK_LIST_NAME].ContentTypes[0];
contentType.FieldLinks.Reorder(new string[4]
{
"Field1",
"Field2",
"Field3",
"Field4"
});
contentType.Update();
}
调用OrderFields
的函数也会调用web.Update();
。
不幸的是,重新排序调用不会重新排序我的表单上的字段。我错过了什么吗?任何人都可以提出我可能会尝试的任何技巧吗?
答案 0 :(得分:0)
问题在于我的字段名称。
我在执行事件处理程序时先前以编程方式创建了两个查找。这些查找的内部名称与我在CAML定义的Name和StaticName参数中给出的“Field1”和“Field2”名称有很大不同。
相反,内部名称似乎由显示名称组成,空格由“ 0020 ”替换,并截断为32个字符的长度。