zoukankan      html  css  js  c++  java
  • 更新查询项lookup value in list using CSOM

    public void UpdateLookup(string siteUrl, int id, string lookupColumnName,
    List multiLookupValues, string listName, string lookupListName)
    {
        using (ClientContext ctx = new ClientContext(siteUrl))
        {
            ctx.Credentials = new NetworkCredential(_username, _password, _domain);
            var list = ctx.Web.Lists.GetByTitle(listName);
            var item = list.GetItemById(id);
            var lookUpList = ctx.Web.Lists.GetByTitle(lookupListName);
            CamlQuery query = new CamlQuery();
            query.ViewXml = CreateCaml(multiLookupValues);
            var items = lookUpList.GetItems(query);
            ctx.Load(item, i => i[lookupColumnName]);
            ctx.Load(items);
            ctx.ExecuteQuery();
            var lookupValues = new ArrayList();
            FieldLookupValue[] values = item[lookupColumnName] as FieldLookupValue[];
            foreach (ListItem listItem in items)
            {
                var lookupValue = new FieldLookupValue { LookupId = listItem.Id };
                lookupValues.Add(lookupValue);
            }
            item.ParseAndSetFieldValue(lookupColumnName, null);
            item.Update();
            item[lookupColumnName] = lookupValues.ToArray();
            item.Update();
            ctx.ExecuteQuery();
        }
    }


    public void UpdateLookup(string siteUrl, int id, string lookupColumnName,
    List multiLookupValues, string listName, string lookupListName)
    {
        using (ClientContext ctx = new ClientContext(siteUrl))
        {
            ctx.Credentials = new NetworkCredential(_username, _password, _domain);
            var list = ctx.Web.Lists.GetByTitle(listName);
            var item = list.GetItemById(id);
            var lookUpList = ctx.Web.Lists.GetByTitle(lookupListName);
            CamlQuery query = new CamlQuery();
            query.ViewXml = CreateCaml(multiLookupValues);
            var items = lookUpList.GetItems(query);
            ctx.Load(item, i => i[lookupColumnName]);
            ctx.Load(items);
            ctx.ExecuteQuery();
            var lookupValues = new ArrayList();
            FieldLookupValue[] values = item[lookupColumnName] as FieldLookupValue[];
            foreach (ListItem listItem in items)
            {
                var lookupValue = new FieldLookupValue { LookupId = listItem.Id };
                lookupValues.Add(lookupValue);
            }
            item.ParseAndSetFieldValue(lookupColumnName, null);
            item.Update();
            item[lookupColumnName] = lookupValues.ToArray();
            item.Update();
            ctx.ExecuteQuery();
        }
    }
    private string CreateCaml(List multiLookupValues)
    {
        if (multiLookupValues.Count == 1)
        {
            return string.Format(@"
     
                    {0}
     
              ", multiLookupValues[0]);
        }
        StringBuilder sb = new StringBuilder();
        sb.Append(@"
     
                                ");
     
        foreach (string multiLookupValue in multiLookupValues)
        {
            sb.Append(string.Format(@"
     
                     {0}
                      ", multiLookupValue));
        }
        sb.Append(@"
     
                     ");
        return sb.ToString();
    }
  • 相关阅读:
    hdu6199 gems gems gems dp+博弈
    codeforces 429 On the Bench dp+排列组合 限制相邻元素,求合法序列数。
    hdu6153 扩展kmp求一个字符串的后缀在另一个字符串出现的次数。
    hdu6149 Valley Numer II 分组背包+状态压缩
    hdu6125 Free from square 分组背包+状态压缩
    hdu1712 ACboy needs your help 分组背包
    hdu6121 Build a tree 模拟
    hdu6134 Battlestation Operational 莫比乌斯第一种形式
    hdu6143 Killer Names 容斥+排列组合
    将Long类型转为字母数字组合的jar包---Hashids
  • 原文地址:https://www.cnblogs.com/xdanny/p/12395739.html
Copyright © 2011-2022 走看看