• 从PeopleEditor控件中取出多用户并更新到列表


    如果一个列表中有一个字段类型为用户或用户组,并且设置为用户,允许多值的话,那么用代码进行更新的时候就必须将这个字段的值赋成SPFieldUserValueCollection类型,以下代码即为从PeopleEditor控件中取出多个用户并返回一个SPFieldUserValueCollection类型的值:

     1 /// <summary>
     2         /// 从人员选取器中获取多用户并返回SPFieldUserValueCollection类型
     3         /// </summary>
     4         /// <param name="pe">人员选取器</param>
     5         /// <returns></returns> ToString:user1ID;#user1Name;#user2ID;#user2Name
     6         public SPFieldUserValueCollection GetUsersValue(PeopleEditor pe)
     7         {
     8             SPFieldUserValueCollection result = new SPFieldUserValueCollection();
     9             using (SPSite mySite = new SPSite(SPContext.Current.Site.ID))
    10             {
    11                 using (SPWeb myWeb = mySite.RootWeb)
    12                 {
    13                     if (pe.CommaSeparatedAccounts != "")
    14                     {
    15                         foreach (string item in pe.CommaSeparatedAccounts.Split(','))
    16                         {
    17                             SPUser u = myWeb.EnsureUser(item);
    18                             SPFieldUserValue uservalue = new SPFieldUserValue(myWeb, u.ID, u.Name);
    19                             result.Add(uservalue);
    20                         }
    21                     }
    22                 }
    23             }
    24             return result;
    25         }

    更新的时候直接将item["user"]=GetUsersValue(pe);然后Update一下即可。

    另外如果需要通过代码将多用户赋值给PeopleEditor控件,只需要设置PeopleEditor控件的CommaSeparatedAccounts属性为User1Name,User2Name这样即可,即为每个用户的DisplayName,然后之间用“,”隔开就可以了,代码如下:

    pe.CommaSeparatedAccounts="User1Name,User2Name";
    
  • 相关阅读:
    HDU 1800 Flying to the Mars 字典树,STL中的map ,哈希树
    字典树 HDU 1075 What Are You Talking About
    字典树 HDU 1251 统计难题
    最小生成树prim算法 POJ2031
    POJ 1287 Networking 最小生成树
    次小生成树 POJ 2728
    最短路N题Tram SPFA
    poj2236 并查集
    POJ 1611并查集
    Number Sequence
  • 原文地址:https://www.cnblogs.com/tdskee/p/3421105.html
Copyright © 2020-2023  润新知