【问题标题】:Adding lookup column to list using CSOM使用 CSOM 将查找列添加到列表
【发布时间】:2018-02-13 13:46:53
【问题描述】:

我有一个名为“书籍”的列表,其中包含“名称”、“作者姓名”、“ISBN”列,类型为文本。现在我有另一个名为“BillTokenStore”的列表,我想在“BillTokenStore”中添加查找列“AuthorName”。以下是我所做的。

using (ClientContext context = new ClientContext(webFullUrl: siteUrl))
            {
                context.Credentials = new SharePointOnlineCredentials(userName, GetPassWord());

                Web web = context.Web;

                ListCollection listCollection = web.Lists;
                List list = listCollection.GetByTitle("BillTokenStore");


                string schemaLookupField = @"<Field Type='Lookup' Name='InStock' StaticName='InStock' DisplayName='InStock' List = 'Books' ShowField = 'Title' /> ";
                Field lookupField = list.Fields.AddFieldAsXml(schemaLookupField, true, AddFieldOptions.DefaultValue);

                context.ExecuteQuery();               
            }

当我运行此代码时,我收到错误“值不属于预期范围 sharepoint 2013”​​。这里有什么问题?提前致谢。

注意:我能够通过 UI 实现同样的目标。我还可以通过代码添加其他类型的字段,例如选择、布尔值和全部。

【问题讨论】:

    标签: c# sharepoint sharepoint-2013 csom


    【解决方案1】:

    您需要显式加载列表和该列表的字段。

    另外,我们需要传递查找列列表的 GUID。

    请尝试以下修改后的代码:

    using (ClientContext context = new ClientContext(webFullUrl: siteUrl))
    {
        context.Credentials = new SharePointOnlineCredentials(userName, GetPassWord());
    
        Web web = context.Web;
    
        List booksList = context.Web.Lists.GetByTitle("Books");
    
        List list = context.Web.Lists.GetByTitle("BillTokenStore"); 
    
        context.Load(list, l => l.Fields);
        context.Load(booksList, b => b.Id);
        context.ExecuteQuery();
    
        string schemaLookupField = @"<Field Type='Lookup' Name='InStock' StaticName='InStock' DisplayName='InStock' List='"+ booksList.Id +"' ShowField = 'Title' />";
        Field lookupField = list.Fields.AddFieldAsXml(schemaLookupField, true, AddFieldOptions.DefaultValue);
        lookupField.Update();
    
        context.Load(lookupField);
        context.ExecuteQuery();     
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-27
      • 2017-06-17
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 2020-09-18
      相关资源
      最近更新 更多