【问题标题】:Sharepoint 2010 - Can I set a custom form to a content type that is not deployed to _layouts?Sharepoint 2010 - 我可以将自定义表单设置为未部署到 _layouts 的内容类型吗?
【发布时间】:2012-07-12 21:53:50
【问题描述】:

背景:

我有一个网站,我也部署了我的内容类型,并且这个网站有很多子网站。每个子站点将使用内容类型。

我有一个模块,我想在部署和激活我的功能时推送自定义的新建/编辑/显示表单(Web 部件页面)。

我想将这些表单直接设置为内容类型 (FormUrls),但我不知道应该如何或在何处部署表单以便正确引用它们。

我知道如何使用 _layouts 执行此操作,并且我也知道如何使用列表定义架构(设置路径),但由于版本要求,我不能使用其中任何一个(我们尽可能避免使用 _layouts)。我们需要在创建时维护列表和表单历史记录。当发布新版本的列表/表单时,新的内容类型将继承以前的内容类型,新的表单将设置为新的内容类型。

我们也不能使用 Infopath(许可问题)。

我已尝试使用模块将表单部署到内容类型(_cts/内容类型名称)的 Url,但我似乎无法正确获取内容类型路径。这是一个简单的例子(我不能给出实际的代码,否则我会,抱歉)。

模块

<Module Name="Module1" Url="_cts/Content Type" RootWebOnly="FALSE">
  <File Path="Module1\MyNewForm.aspx" Url="Module1/MyNewForm.aspx" />
</Module>

内容类型

<FormUrls xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
      <New>Module1/MyNewForm.aspx</New>
</FormUrls>

上面的示例不起作用,我尝试删除 Module -> Url 属性,以便将其部署在根目录下,但这也没有帮助。对此的任何帮助将不胜感激。

【问题讨论】:

    标签: sharepoint-2010 content-type


    【解决方案1】:

    您可以将任何共享点库用于存储表单。 首先,您需要通过“模块”将页面部署到库/文件夹,elements.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Module Name="Forms" Url="SiteAssets">
        <File Path="Forms\CustomDisplay.aspx"
         Url="CustomDisplay.aspx" 
         Type="GhostableInLibrary" />
      </Module>
    </Elements>
    

    那么它可以作为内容类型的表单引用,elements.xml:

    <?xml version="1.0" encoding="utf-8"?>
    
     <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    
     <ContentType ID="0x01080100AB22BE524D7344D89DBB2A27AAF5AB3C00924B45ABBDA240DA8C5B32541E9184AE"
               Name="CTName"
               Group="CustomCTypes"
               Description="Decription"
               Inherits="FALSE"
               Hidden="FALSE"
               Version="0">
    <FieldRefs>
    </FieldRefs>
    
    <XmlDocuments>
      <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
        <FormUrls  xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
          <Display>SiteAssets/CustomDisplay.aspx</Display>
        </FormUrls>
      </XmlDocument>
    </XmlDocuments>
    

    【讨论】:

    • 我真的很抱歉这么长时间的延误。我一直在使用第二个 Stackoverflow 帐户(公司帐户),但从未看到对我的问题的回复。我会给你应得的名誉。谢谢你,我很抱歉耽搁了。
    • 不重要,可以帮到别人!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2010-10-17
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多