SPFieldLinkCollection.Reorder的问题:没有记录的工作

时间:2009-11-30 22:15:44

标签: sharepoint sharepoint-2007 sharepoint-api

我正在使用我在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();

不幸的是,重新排序调用不会重新排序我的表单上的字段。我错过了什么吗?任何人都可以提出我可能会尝试的任何技巧吗?

1 个答案:

答案 0 :(得分:0)

问题在于我的字段名称。

我在执行事件处理程序时先前以编程方式创建了两个查找。这些查找的内部名称与我在CAML定义的Name和StaticName参数中给出的“Field1”和“Field2”名称有很大不同。

相反,内部名称似乎由显示名称组成,空格由“ 0020 ”替换,并截断为32个字符的长度。