以编程方式向Sharepoint列表视图添加列

以编程方式向Sharepoint列表视图添加列,sharepoint,list,view,Sharepoint,List,View,对于我正在进行的一个项目,我正在尝试做以下事情 有一个Sharepoint 2010环境,在Visual Studio中创建了一些自定义列表。我正在使用EventReceiver中FeatureActivated函数中的背景代码向它们添加一些字段 我在那里做的是向Sharepoint列表添加一个查找字段,并设置属性以允许它从我添加到Sharepoint网站的其他列表中查找值 但是,我找不到将其添加到其中一个视图的函数。我尝试过修改模式Xml,但似乎找不到将其重新插入列表的函数,而且当从视图中使用

对于我正在进行的一个项目,我正在尝试做以下事情

有一个Sharepoint 2010环境,在Visual Studio中创建了一些自定义列表。我正在使用EventReceiver中FeatureActivated函数中的背景代码向它们添加一些字段

我在那里做的是向Sharepoint列表添加一个查找字段,并设置属性以允许它从我添加到Sharepoint网站的其他列表中查找值

但是,我找不到将其添加到其中一个视图的函数。我尝试过修改模式Xml,但似乎找不到将其重新插入列表的函数,而且当从视图中使用Xml文件时,似乎无法使其正常工作

有没有一种简单的方法可以通过编程将字段添加到视图中?这将帮助我解决问题,因为似乎没有正确的方法

如果有人能解释我的另一个问题,这个问题也可以解决

我想知道如何在模式XML文件中创建查找字段。我有一个自定义内容类型和自定义字段,我目前正试图在IRS列表中查找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" />
但是是的。我不知道如何以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();

        }