我正在使用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文件中的和/或标签中缺少正确的属性(如上所示)。
答案 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的目录中。