以编程方式向Sharepoint列表视图添加列
对于我正在进行的一个项目,我正在尝试做以下事情 有一个Sharepoint 2010环境,在Visual Studio中创建了一些自定义列表。我正在使用EventReceiver中FeatureActivated函数中的背景代码向它们添加一些字段 我在那里做的是向Sharepoint列表添加一个查找字段,并设置属性以允许它从我添加到Sharepoint网站的其他列表中查找值 但是,我找不到将其添加到其中一个视图的函数。我尝试过修改模式Xml,但似乎找不到将其重新插入列表的函数,而且当从视图中使用Xml文件时,似乎无法使其正常工作 有没有一种简单的方法可以通过编程将字段添加到视图中?这将帮助我解决问题,因为似乎没有正确的方法 如果有人能解释我的另一个问题,这个问题也可以解决 我想知道如何在模式XML文件中创建查找字段。我有一个自定义内容类型和自定义字段,我目前正试图在IRS列表中查找Naam字段。(部署此解决方案时也会创建此解决方案)。在搜索Google时,似乎我必须在这里使用列表实例的名称/GUID,但我事先不知道列表实例的GUID以编程方式向Sharepoint列表视图添加列,sharepoint,list,view,Sharepoint,List,View,对于我正在进行的一个项目,我正在尝试做以下事情 有一个Sharepoint 2010环境,在Visual Studio中创建了一些自定义列表。我正在使用EventReceiver中FeatureActivated函数中的背景代码向它们添加一些字段 我在那里做的是向Sharepoint列表添加一个查找字段,并设置属性以允许它从我添加到Sharepoint网站的其他列表中查找值 但是,我找不到将其添加到其中一个视图的函数。我尝试过修改模式Xml,但似乎找不到将其重新插入列表的函数,而且当从视图中使用
<Field ID="{7CC49D9D-F6F5-4A4A-851F-3152AAAAB158}" Type="Lookup"
List="Intermediairs" Name="IntermediairLookup" DisplayName="Intermediair"
StaticName="IntermediairLookup" Group="Onboarding" ShowField="Naam" />
但是是的。我不知道如何以XML的形式实现它。有人有什么想法吗?任何一个问题的解决方案都能解决我的核心问题
您好
垫子
编辑:这个问题现在已经回答了,再次感谢!
不过有一件事。我真的很想知道如何在XML/CAML中做类似的事情。有人知道怎么做吗?有人还在读这个帖子吗?看看SPView.ViewFields
没有比这更好的答案了。哈哈,非常感谢!这正是我想要的。我还发现了如何使用特定对象(使用MoveFieldTo)重新组织视图。令人惊叹的。
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();
}