• PeopleEditor的取值及赋值


            /// <summary>
            /// 从PeopleEditor取值
             /// </summary>
            /// <param name="peopleEditor"></param>
            /// <returns></returns>
            public static List<SPPrincipal> GetSPPrincipalsFromPeopleEditor(PeopleEditor peopleEditor)
            {
    
                List<SPPrincipal> rtn = new List<SPPrincipal>();
                SPWeb web = SPContext.Current.Web;
                SPUserCollection users = web.SiteUsers;
                SPGroupCollection groups = web.SiteGroups;
    
                foreach (PickerEntity pe in peopleEditor.ResolvedEntities)
                {
                    string principalType = pe.EntityData["PrincipalType"].ToString();
                    if (principalType == "User" || principalType == "SecurityGroup")
                    {
                        string loginName=pe.Key;
                        foreach (SPUser u in users)
                        {
                            if (u.LoginName == loginName)
                            {
                                rtn.Add(u);
                                break;
                            }
                        }
                            
                    }
                    else if (principalType == "SharePointGroup")
                    {
                        string groupName = pe.Key;
                        foreach (SPGroup g in groups)
                        {
    
                            if (g.Name == groupName)
                            {
    
                                rtn.Add(g);
                                break;
                            }
                        }
                    }
                }
    
                return rtn;
            }
    
            /// <summary>
            /// 为PeopleEditor赋值
             /// </summary>
            /// <param name="peopleEditor"></param>
            /// <param name="spPrincipals"></param>
            public static void SetPeopleEditorValue(PeopleEditor peopleEditor, List<SPPrincipal> spPrincipals)
            {
                string principalsStr;
                if (spPrincipals==null || spPrincipals.Count == 0)
                    principalsStr = "";
                else
                {
                    List<string> principalsStrCollection = new List<string>();
                    foreach (SPPrincipal principal in spPrincipals)
                    {
                        SPUser user = principal as SPUser;
                        SPGroup group = principal as SPGroup;
                        if (user != null || group != null)
                            principalsStrCollection.Add(principal.Name);
                    }
                    principalsStr = string.Join(",", principalsStrCollection.ToArray());
                }
                peopleEditor.CommaSeparatedAccounts = principalsStr;
            }
  • 相关阅读:
    推荐系统算法总结(转)
    【算法题】求最大子数组之和
    jQuery中的filter和find函数
    获取文件夹大小
    微博140字,英文算半个字,中文算一个字,如何实现?
    Xcode 4 添加 Three20 的方法
    應用程式的設定檔info.plist
    iphone中结束电话后返回自己的应用
    解决问题:The icon file must be 57x57 pixels, in .png format (19014)
    开发中的一些小细节代码分享
  • 原文地址:https://www.cnblogs.com/ricky_li/p/3523824.html
Copyright © 2020-2023  润新知