如何将网络相关查找字段创建为“页面”列表?
-
10-12-2019 - |
题
我有SharePoint网站集合'http://microsoft.com/',少量子网网: http://microsoft.com/news/
我想创建查找字段为“页面”列表。在每个子网上,Web查找字段应指向当前的Web“页面”列表。
当前我所创建的字段与根站点上的“页面”lib有关。
我得到了字段定义:
<Field Name="LookupToPages"
ID="{3B5B07A0-68DB-4BF6-AAAE-87B77CE430C6}"
Type="LookupMulti"
DisplayName="Related News"
Group="Intranet.ContentTypes"
Mult="TRUE"
Overwrite="TRUE"
SourceID="http://schemas.microsoft.com/sharepoint/v3"
List="Pages"
ShowField="Title"/>
.
此字段添加到我的内容类型,用于页面lib:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ContentType ID="0000"
Name="News"
Group="my froup"
Description="Page layout for intranet news."
Inherits="TRUE"
Version="0">
<FieldRefs>
<FieldRef ID="{3B5B07A0-68DB-4BF6-AAAE-87B77CE430C6}" Name="LookupToPages" />
</FieldRefs>
</ContentType>
</Elements>
.
我试图将字段定义添加到包含范围的“站点”和“Web”的功能。 他们两个都有相同的结果。我只需查找到根网站的查找列。
如何使此字段Web相关?
解决方案
EVGENY,
如果这是一个查找列表它是自我的(即,您要选择元素表单相同的列表,如相关的新闻文章),您可以将列表属性设置为“self”。
<Field Name="LookupToPages"
ID="{3B5B07A0-68DB-4BF6-AAAE-87B77CE430C6}"
Type="LookupMulti"
DisplayName="Related News"
Group="Intranet.ContentTypes"
Mult="TRUE"
Overwrite="TRUE"
SourceID="http://schemas.microsoft.com/sharepoint/v3"
List="Self"
ShowField="Title"/>
在这里查看更多信息:
其他提示
EVGENY,
如果您通过功能配置列表或内容类型,则建议您使用事件接收器。
简而言之,您需要做的是要在列表中创建查找列,请将字段链接获取到新列,然后将字段链接添加到附加到列表中的内容类型。
这样的东西应该做诀窍,只要你有MyList,MyListct和Pagelist对象已经:
string fieldName = myList.Fields.AddLookup("Page Column Display Name", pageList.ID, true);
SPField field = myList.Fields.GetFieldByInternalName(fieldName);
SPFieldLink fieldLink = new SPFieldLink(invoiceField);
myListCT.FieldLinks.Add(invoiceFieldLink);
myListCT.Update();
.
.b
在SP2013中,您可以创建查找列。在“获取”字段中的“获取信息”中,选择“站点”页面。
我建议您使用JSOM,因为它也可以轻松地使用O 365。 您可以使用该方法: FieldCollection.addFieldASXML(FieldsChema,True,Sp.addFieldOptions.addtodefaultContentType);