安装自定义ASPX文件作为ListTemplate定义的一部分

时间:2009-06-26 22:21:05

标签: sharepoint file list templates module

我正在使用VSeWSS 1.3来创建一个定制为“网站”的自定义列表定义

    <Elements Id="8924acef-84ef-4584-ade4-e3eaeb8df345" xmlns="http://schemas.microsoft.com/sharepoint/">

  <ListTemplate Name="MyListDefinition"
                DisplayName="MyList"
                Description=""
                BaseType="0"
                Type="10888"
                OnQuickLaunch="TRUE"
                SecurityBits="11"
                Sequence="410"
                Image="/_layouts/images/itgen.gif" />

  <CustomAction
    Id="MyList.Print"
    Location="Microsoft.SharePoint.StandardMenu"
    GroupId="ActionsMenu"
    Title="Print MyItem"
    Description="Print Empty copies of this form."
    RegistrationType="List"
    ControlAssembly="MyList, Version=1.0.0.0, Culture=neutral, PublicKeyToken=de6e0316a726abcd, processorArchitecture=MSIL"
    ControlClass="MyList.PrintActionMenu" />

  <Module Name="ActionPages" Url="">
    <File Url="PrintForm.aspx" Type="Ghostable" Path="MyListDefinition\PrintForm.aspx" />
  </Module>
</Elements>

文件'PrintForm.aspx'已在 ... \ 12 \ TEMPLATE \ Features ... 下的服务器上正确安装,但它没有显示在安装列表模板并使用此模板创建新列表实例后,在预期URL http://localhost/site/lists/listname/PrintForm.aspx 下。

我怀疑我在ListDefinition.xml文件中的和/或标签中缺少正确的属性(如上所示)。

2 个答案:

答案 0 :(得分:0)

你还应该有一个schema.xml,在schema.xml中应该有这样的东西:

<Forms>
  <Form Type="DisplayForm" Url="DispForm.aspx" WebPartZoneID="Main" />
  <Form Type="EditForm" Url="EditForm.aspx" WebPartZoneID="Main" />
  <Form Type="NewForm" Url="NewForm.aspx" WebPartZoneID="Main" />
  ...... your form here
</Forms>

P.S。尝试使用SharePoint Solution Generator导出现有列表(附带VSeWSS),它将为您提供完整的xml定义。您可以将其用作参考。

P.P.S。在评论中发布的链接中,它声明文件应该在功能中注册,如下所示:

<ElementFile Location="GenericList\schema.xml" />
<ElementFile Location="GenericList\DispForm.aspx" />
<ElementFile Location="GenericList\EditForm.aspx" /> 
<ElementFile Location="GenericList\NewForm.aspx" /> 
<ElementFile Location="GenericList\AllItems.aspx" />

答案 1 :(得分:0)

如果它在任何地方,当模块元素的Url为空时,我希望PrintForm.aspx显示在您网站的根文件夹中。试试这个:

  <Module Name="ActionPages" Url="lists/listname">    
        <File Url="PrintForm.aspx" Type="GhostableInLibrary" Path="MyListDefinition\PrintForm.aspx" />  
  </Module>

另外,请尝试使用GhostableInLibrary而不是Ghostable作为文件类型。

最后,你提到PrintForm.aspx确实出现在Features中的某个地方,但没有提供完整的路径。确保它在... \ 12 \ TEMPLATE \ Features \ YourFeaturesName \ MyListDefinition \ PrintForm.aspx中。根据Path属性的值,PrintForm.aspx需要位于Feature中名为MyListDefinition的目录中。