PeopleEditor赋值操作(原创)

最近较频繁的在操作PeopleEditor ,于是也碰到了好些方法,现写一下,希望能帮助到大家:


        protected void ueAddDefaultCCUsers() //把一个ReaderGroup组里的人员名称,赋给peditCC用户控件
        {
            SPGroup spGroup = new SharePointHelper().GetSPGroup("ReaderGroup");
            SPUserCollection Spusercollection = spGroup.Users;
            List<SPPrincipal> spPrincipals = new List<SPPrincipal>();
            foreach (SPUser User in Spusercollection)
            {
                if (User != null)
                {
                    spPrincipals.Add(User);
                }
            }
           SetPeopleEditorValue(peditCC, spPrincipals);
        }


           调用下面的PeopleEditor方法

        public void SetPeopleEditorValue(PeopleEditor peopleEditor, List<SPPrincipal> spPrincipals)
        {
            try
            {
                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;
            }
            catch (Exception ex)
            {
                Log4NetHelper.Fatal(MethodBase.GetCurrentMethod().DeclaringType, ex);
            }
        }


另外,我做了一个,选择一个下拉框,相对应的peditSub 这个用户控件的用户名就会改变,代码如下:

void ddlSubSystem_SelectedIndexChanged(object sender, EventArgs e)
        {
            using (SPSite site = new SPSite(WFWebUrl))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    List<Control> Contents = new Portal().GetContentByID(int.Parse(ddlSub.SelectedValue));//获取表Control的行
                    if (Contents.Count > 0)
                    {
                        SPUser User = web.EnsureUser(Contents[0].CreateUser); //这里是把数据库里存的string类型用户名转换成SPUser类型
                        if (User != null)
                        {
                            List<SPPrincipal> spPrincipals = new List<SPPrincipal>();
                            spPrincipals.Add(User);
                            new SharePointHelper().SetPeopleEditorValue(peditSub, spPrincipals);
                        }
                    }
                }
            }
        }

方法比较简单,所以没多加注释,如有问题,可留言共同讨论。有更好的,希望也能分享出来。呵呵。。。一起进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值