像其他许多SharePoint用户一样,我不得不创建自定义列表定义。经过很多麻烦,我终于成功创建了一个(我想是的,但是让我先解决所有错误),但是是否有一个“基本”模式可以使用,或者有一个专门用于生成Schema.xml
的编辑器?
像其他许多SharePoint用户一样,我不得不创建自定义列表定义。经过很多麻烦,我终于成功创建了一个(我想是的,但是让我先解决所有错误),但是是否有一个“基本”模式可以使用,或者有一个专门用于生成Schema.xml
的编辑器?
内置的列表定义位于12个hive中的特性中:
<Form Type="DisplayForm" Url="DispForm.aspx"
SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx"
SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx"
SetupPath="pages\form.aspx" WebPartZoneID="Main" />
您还需要更新每个视图的视图路径,如果在原始站点中使用默认表单,则应该设置SetupPath="pages/viewpage.aspx"。
请注意,您还需要修改其他属性,但是如果您确保遵循wss.xsd模式,并且您的自定义列表schema.xml符合wss.xsd模式验证,那么应该没问题。
.b
所有的schema.xml文件通常都存在一个大问题,那就是90%的代码都驻留在各种视图元素中。这个问题有一个非常简单的解决方案 - 使用默认的ViewStyles之一。
这里有一个直接、易读、极简的模式可以开始使用。详见http://mo.notono.us/2009/02/moss-dreaded-schemaxml.html。除非你真的非常需要调整呈现的HTML,否则不要去破坏视图caml:
<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Id="{AB426CDE-98F2-432A-B296-880C7931DEF3}"
Title="Setting" Url="Lists/Setting" BaseType="0"
FolderCreation="FALSE" DisableAttachments="TRUE" VersioningEnabled="FALSE"
Direction="$Resources:Direction;"
xmlns="http://schemas.microsoft.com/sharepoint/">
<MetaData>
<Fields>
<Field Type="Text" Name="Title" DisplayName="Name" Required="TRUE" />
<Field Type="Text" Name="Value" DisplayName="Value" Required="TRUE" />
</Fields>
<Views>
<View BaseViewID="0" Type="HTML" WebPartZoneID="Main" DisplayName="All Items" DefaultView="TRUE"
MobileView="True" MobileDefaultView="False" SetupPath="pages\viewpage.aspx"
ImageUrl="/_layouts/images/issues.png" Url="AllItems.aspx">
<ViewStyle ID="17"/>
<RowLimit Paged="TRUE">100</RowLimit>
<Toolbar Type="Standard" />
<ViewFields>
<FieldRef Name="Edit" />
<FieldRef Name="Title"/>
<FieldRef Name="Value"/>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="Title"/>
</OrderBy>
</Query>
</View>
</Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
</Forms>
<DefaultDescription>Settings used in the application.</DefaultDescription>
</MetaData>
</List>
使用浏览器选项在本地开发环境中创建您想要开发的列表。将该网站保存为模板并下载到本地文件系统。
现在,使用模板创建一个新的Visual Studio项目,从解决方案包中导入。定位存储在文件系统上的解决方案包。现在,当您看到解决方案时,您会发现您创建的列表。文件schema.XML
将位于列表定义中。复制内容类型、字段和视图内容,并将其粘贴到您的schema.xml
文件中。
在 EG 的回答基础上,如果你只想更改现有列表附加的字段(但保留视图等基本相同),你需要在两个地方进行更改:列表/元数据/字段和列表/元数据/视图/视图/视图字段。
字段部分相对简单,只要按照文档的说明操作即可。
要在给定视图中显示列,您需要编辑给定视图的 ViewFields 部分。例如,如果您有名为“标题”、“作者”和“出版商”的列,希望它们在视图中显示,请找到该视图的 ViewFields 部分并按以下方式进行编辑:
<ViewFields>
<FieldRef Name="Title" />
<FieldRef Name="Author" />
<FieldRef Name="Publisher" />
</ViewFields>
这些字段(仅限这些字段)应该在该视图中显示。