Поля, отсутствующие в пользовательском типе контента (унаследованном от «страницы») SharePoint - PullRequest
0 голосов
/ 08 апреля 2010

, поэтому я хочу развернуть пользовательский тип контента на основе «Page» по компоненту. Развертывание типов содержимого работает нормально - пользовательские типы содержимого создаются на основе «страницы».

Чего не хватает, так это FieldRefs: поля, на которые я ссылаюсь в теге FieldRefs, не отображаются в развернутом типе контента.

Мой Elements.xml выглядит как ...

<Elements xmlns="http://schemas.microsoft.com/sharepoint/"><br /> <Field Type="Text"<br /> DisplayName="PlantName"<br /> Required="FALSE"<br /> Group="Custom Columns"<br /> ID="{2068B882-8349-4a7f-BA3A-60BE60DEFF9A}"<br /> StaticName="PlantName"<br /> Name="PlantName" /><br /> <ContentType ID="0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900A96BBF2C61EC4534A7654CEF00B72A9D"<br /> Name="PlantDocument"<br /> Group="Custom Content Types"<br /> Description="PlantDocument"<br /> Hidden="FALSE"<br /> Version="0"><br /> <FieldRefs><br /> <FieldRef ID="2068B882-8349-4a7f-BA3A-60BE60DEFF9A" <br /> Name="PlantName" /><br /> </FieldRefs><br /> </ContentType><br /> </Elements><br />

Может кто-нибудь сказать мне, почему «PlantName» не присутствует в моем типе контента?

СПАСИБО ОГРОМНОЕ ЗА ВСЕ ПОМОЩЬ!

Ответы [ 2 ]

5 голосов
/ 06 мая 2010

У меня была похожая проблема, и после некоторых экспериментов я обнаружил, что комментарии в XML вызывают хаос.

Это прекрасно работает

 <FieldRefs>
      <FieldRef ID="{4B9D42FA-8081-49AB-9F89-72FAB3C6609C}"/>
 </FieldRefs>

Это не работает

<FieldRefs>
      <!-- My field comment -->
      <FieldRef ID="{4B9D42FA-8081-49AB-9F89-72FAB3C6609C}"/>
</FieldRefs>

Я воздержусь от комментариев по этому поводу, так как могу расстроиться и перестать работать.

0 голосов
/ 08 апреля 2010

Я не уверен, что полностью понял вашу проблему, но звучит похоже на то, что я видел раньше.

Я собираюсь предположить, что вы проверили все очевидные вещи, такие как определение схемы и, если вы деактивируете и активируете функцию типа контента после развертывания вашей схемы.

Когда вы добавляете тип контента на свой сайт, вероятным сценарием является создание экземпляра элемента страницы / списка на основе этого типа контента где-то на вашем сайте. В моем случае это были два сайта вниз. Это работало нормально для меня. Как только я обновил свой тип контента (добавив новое поле), хотя я мог видеть изменение типа контента, появляющееся в галерее типов контента, но я не мог видеть, как это изменение переходит на суб-сайт, где я создал страницу на основе на моем типе контента. Это связано с тем, что при создании экземпляра элемента на основе определенного типа контента дочерний сайт создает кэшированную копию этого типа контента в своем текущем состоянии.

Позже, когда вы вносите изменения в тип содержимого, кэшированная копия на дочернем сайте НЕ обновляется. Это не самая очевидная вещь в мире.

Возможно, вы не можете видеть поля, появляющиеся на суб-сайте, но они существуют в столбцах вашего сайта, и ваш корневой тип контента был обновлен правильно.

Если это ваша проблема, то вам нужно выполнить то, что мы называем «push-type типа контента». Чтобы сделать это, вы можете загрузить команду stsadm Гэри Лапойнта, которую вам нужно будет запустить из командной строки (я слышал, что в некоторых случаях это рискованно). Вы также можете сделать это вручную, но извините, я не могу точно вспомнить, как это делается. Вы должны удалить все экземпляры в зависимости от вашего типа контента и повторить попытку. Довольно болезненная маленькая задача.

...