Xml Sharepoint 2010-隐藏“;标题「;自定义内容类型中的字段
现在我正在定义一个新的Xml Sharepoint 2010-隐藏“;标题「;自定义内容类型中的字段,xml,sharepoint,sharepoint-2010,custom-lists,Xml,Sharepoint,Sharepoint 2010,Custom Lists,现在我正在定义一个新的自定义列表定义在自定义内容类型中,问题只是与列表关联的标题字段无法隐藏,我遵循了下面链接中的一些方法,但没有成功 只需添加列表定义,而不实现内容类型,就会使标题字段消失,但定义内容类型及其字段时,标题字段始终可见 Elements.xml <ContentType ID="0x01003EBF692DD17B4F71966712180C0D23D8" Name="ContactUsAssignments" Descript
自定义列表定义
在自定义内容类型
中,问题只是与列表关联的标题
字段无法隐藏,我遵循了下面链接中的一些方法,但没有成功
列表定义
,而不实现内容类型,就会使标题字段消失,但定义内容类型及其字段时,标题字段始终可见
Elements.xml
<ContentType ID="0x01003EBF692DD17B4F71966712180C0D23D8" Name="ContactUsAssignments"
Description="Contact Us Assignments content type">
<FieldRefs>
<FieldRef ID="{4B888F48-A039-46D0-B2E1-C67802097069}"/>
<FieldRef ID="{6238a52d-2975-4e8a-9a1e-31b9cdc74129}"/>
<RemoveFieldRef ID="{D3D0DDF1-F791-4FFF-893C-0C100B724F1A}" />
</FieldRefs>
</ContentType>
<ContentTypes>
<ContentTypeRef ID="0x01003EBF692DD17B4F71966712180C0D23D8"></ContentTypeRef>
</ContentTypes>
<Fields>
<Field Type="Text" DisplayName="Title" Required="FALSE"
ID="{D3D0DDF1-F791-4FFF-893C-0C100B724F1A}" StaticName="Title" Name="Title" Hidden="TRUE" />
</Fields>
我不知道我是否错过了什么,但方法已经足够清楚了。谢谢。您是否尝试过在ContentType定义上方的Elements.xml文件中添加标题字段定义?我在下面的elements.xml文件中找到了两个添加字段定义的示例。您可以尝试这样做,并将Required设置为False,Hidden设置为True,然后看看是否有效
我从来没有这样做过,但是我有时会作弊,从列表定义中完全删除内容类型(保留为
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- Parent ContentType: Item (0x01)
Tracked user activity. -->
<ContentType ID="0x0100c592d12a1dfa42ae8614d54f45118f83"
Name="User Activity"
Group="User Activity Tracking"
Description="Tracked user activity."
Inherits="FALSE"
Version="0">
<FieldRefs>
<!--Title field inherited from parent Item content type is not required.-->
<RemoveFieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" />
<FieldRef ID="{B2FCBA31-5888-4CB9-BCC8-7B1943161B40}" Name="UserActivityCreatedBy"/>
<FieldRef ID="{B3F666F7-2DA3-402C-A1A2-A6AA9F4E3E86}" Name="UserActivityType"/>
<FieldRef ID="{ABF63CC0-6201-44E7-BA8E-4C0116E5B09F}" Name="UserActivityTimeStamp"/>
</FieldRefs>
</ContentType>
</Elements>
在列表定义中将ref添加到内容类型
<ContentTypes>
<ContentTypeRef ID="0x0100c592d12a1dfa42ae8614d54f45118f83"/>
</ContentTypes>
<ContentType ID="0x0100a2045db65601406a95f8f050642655b7"
Name="MyContentType"
Group="Custom Content Types"
Description="Content Type Description"
Inherits="FALSE"
Version="0">
<FieldRefs>
<!--removing the reference from the Title field-->
<RemoveFieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" />
....
</FieldRefs>
“字段”部分不描述标题字段
<Fields>
<Field ID="{b2fcba31-5888-4cb9-bcc8-7b1943161b40}" Name="UserActivityCreatedBy" Type="User" List="UserInfo" ShowField="Title" UserSelectionMode="0" UserSelectionScope="0" ReadOnlyEnforced="TRUE" Required="TRUE" DisplayName="Created By" StaticName="UserActivityCreatedBy" Group="User Activity Tracking"/>
<Field ID="{b3f666f7-2da3-402c-a1a2-a6aa9f4e3e86}" Name="UserActivityType" Type="Choice" Format="Dropdown" FillInChoice="FALSE" DisplayName="Type" StaticName="UserActivityType" Group="User Activity Tracking">
<Default>HttpRequest</Default>
<CHOICES>
<CHOICE>Login</CHOICE>
<CHOICE>HttpRequest</CHOICE>
<CHOICE>TermsOfUsageAcceptance</CHOICE>
</CHOICES>
</Field>
<Field ID="{abf63cc0-6201-44e7-ba8e-4c0116e5b09f}" Name="UserActivityTimeStamp" Type="DateTime" Format="DateTime" StorageTZ="UTC" DisplayName="Time Stamp" StaticName="UserActivityTimeStamp" Group="User Activity Tracking"/>
</Fields>
HttpRequest
登录
HttpRequest
使用验收条款
另外,不要忘记描述适当的视图-视野部分
<ViewFields>
<FieldRef Name="UserActivityCreatedBy" />
<FieldRef Name="UserActivityType" />
<FieldRef Name="UserActivityTimeStamp" />
</ViewFields>
以下是适用于我们所有项目的方法: 在定义所有自定义内容类型的element.xml中,添加下一行以隐藏“Title”字段。确保具有相同的GUID,因为它是OOTB SharePoint标题字段:
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Title" Required="FALSE" Hidden="TRUE" />
属性Required=“FALSE”和Hidden=“TRUE”至关重要。这些行将在内容类型中工作
另一个修改是内容类型定义。它应该是这样的:
<ContentType ID="0x01005E47745D75A5422A9688FDCC0E6E855A"
Name="Links"
Group="YourGroup"
Description="YouDescription
Inherits="FALSE"
Version="0">
这里提到的所有答案都经过了测试,但没有成功。经过多次调查和属性组合,我得出了以下答案
a。在每个列表定义的Elements.xml
文件上,确保
Inherits=“FALSE”
对于内容类型
Hidden=“TRUE”Required=“FALSE”DisplayName=“\u Hidden”
对于“标题
”字段
定义
<ContentType ID="0x01007F465964D8114436BD7D7CF2C2D8CF01" Name="Categories" Group="Category CT" Description="Category content type" Inherits="FALSE">
<FieldRefs>
<FieldRef ID="{BA7EBEF9-338B-45DE-9743-E394873060A7}"/>
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Hidden="TRUE" Required="FALSE" DisplayName="_hidden" />
</FieldRefs>
</ContentType>
b。删除schema.xml上Title
字段的任何引用
这是我的内容类型
<ContentTypes>
<ContentTypeRef ID="0x0100c592d12a1dfa42ae8614d54f45118f83"/>
</ContentTypes>
<ContentType ID="0x0100a2045db65601406a95f8f050642655b7"
Name="MyContentType"
Group="Custom Content Types"
Description="Content Type Description"
Inherits="FALSE"
Version="0">
<FieldRefs>
<!--removing the reference from the Title field-->
<RemoveFieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" />
....
</FieldRefs>
....
这是我的Schema.xml部分,引用了我的内容类型。必须从schema.xml视图字段中删除标题字段
<ContentTypes>
<ContentTypeRef ID="0x0100a2045db65601406a95f8f050642655b7"/>
</ContentTypes>
.....
<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="MyView" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="ID"></FieldRef>
<!--Delete the reference below -->
<FieldRef Name="LinkTitle"></FieldRef>
</ViewFields>
.....
.....
main.xsl
30
.....
这对我来说很好!在我的列表中仍然有一个名为title的列,但是在我的内容类型中没有任何标题为“title”的列,所以它被隐藏在NeWFrm、EdtStand和VelpFrm页面中。 您可以考虑在事件接收器中使用一些代码:
private void HideTitleFormField(SPList list)
{
SPContentTypeCollection listCTCollection = list.ContentTypes;
foreach (SPContentType ct in listCTCollection)
{
SPFieldLinkCollection fieldLinks = ct.FieldLinks;
//whilst we are here: hide the file name so it cant be edited.
fieldLinks["Title"].Hidden = true;
fieldLinks["Title"].Required = false;
ct.Update();
}
}
我也试过这个。关于删除内容类型,这将不会使列表能够通过LINQ访问Sharepoint,对吗?设置Inherits=“FALSE”有什么影响?最好的答案是,在找到此解决方案之前花了几天时间