对于我正在进行的项目,我正在尝试做以下事情。
有一个Sharepoint 2010环境,在Visual Studio中创建了一些自定义列表。我正在使用EventReceiver中FeatureActivated函数中的后台代码向它们添加一些字段。
我正在做的是在Sharepoint List中添加一个查找字段,并设置属性以允许它从我添加到Sharepoint站点的其他列表中查找值。
但是,我找不到将其添加到其中一个视图的函数。我已经尝试修改Schema Xml,但我似乎无法找到一个函数将它重新插入到List中,当使用View中的Xml文件时,我似乎无法使它工作。
是否有一种简单的方法以编程方式向视图添加字段?这对我有帮助,因为似乎没有办法正确地做到这一点。
如果可以解释我的另一个问题,这也可以解决。
我想知道如何在Schema XML文件中创建Lookup字段。我有自定义内容类型和自定义字段,我目前正在尝试在Intermediairs列表中查找Naam字段。 (在部署此解决方案时也会创建此一个)。在搜索Google时,似乎我必须在此处使用名称/列表实例的GUID,但我事先并不知道列表实例的GUID。
<Field ID="{7CC49D9D-F6F5-4A4A-851F-3152AAAAB158}" Type="Lookup"
List="Intermediairs" Name="IntermediairLookup" DisplayName="Intermediair"
StaticName="IntermediairLookup" Group="Onboarding" ShowField="Naam" />
您应该知道此代码似乎有效:
SPWeb web = null;
SPSite site = null;
if (properties.Feature.Parent is SPWeb)
{
web = properties.Feature.Parent as SPWeb;
site = web.Site;
}
if (properties.Feature.Parent is SPSite)
{
site = properties.Feature.Parent as SPSite;
web = site.RootWeb;
}
web.AllowUnsafeUpdates = true;
SPList changeList = web.Lists.TryGetList("Onboarding");
SPList sourceList = web.Lists.TryGetList("Intermediairs");
if (changeList != null && sourceList != null)
{
changeList.Fields.Delete("IntermediairLookup");
var PrimaryColumnStr = changeList.Fields.AddLookup("Intermediair", sourceList.ID, true);
var PrimaryColumn = changeList.Fields.GetFieldByInternalName(PrimaryColumnStr) as SPFieldLookup;
PrimaryColumn.LookupField = sourceList.Fields["Naam"].InternalName;
PrimaryColumn.Update();
}
但是,是的。我无法弄清楚如何以XML格式执行此操作。有人有什么想法吗?任何一个问题的解决方案都可以解决我的核心问题。
问候,
垫
编辑:嗯,问题现在已经回答了,再次感谢! 但有一件事。我真的想知道在某些方面如何在XML / CAML中做这样的事情。有谁知道这是怎么做到的吗?还在读这个帖子的人吗?答案 0 :(得分:2)