首页 > 解决方案 > 获取用户组长并设置输入字段的值

问题描述

首先 - 我使用的是一个空的 SharePoint 网站。

我想找用户组长,然后把它作为输入[type=text]的值。

<span>
    <label for="emailaddress">E-Mail:</label>
    <input type="email" id="emailaddress" name="emailaddress" maxlength="120" size="50" required>
</span>
<span>
    <label for="teamLeader">Team Leader:</label>
    <input type="text" id="teamLeader" name="teamLeader" maxlength="120">
</span>

我这样做是为了获取用户的电子邮件地址并自动将其写入输入字段电子邮件地址,但我不知道是否有这样的事情可以让负责人。

useremail = data.d.Email; $("#emailaddress").val(useremail);

标签: javascripthtmlsharepoint

解决方案


如果我理解正确,您想让作为 SharePoint 人员控制的人员输入,您可以使用客户端人员选择器。

CustomPeoplePicker:
    <div id="peoplePickerDiv"></div>
    <script type="text/javascript">
        $(document).ready(function () {
            SP.SOD.executeFunc('sp.js', 'SP.ClientContext', sharePointReady);
        })

        function sharePointReady() {
            context = new SP.ClientContext.get_current();
            web = context.get_web();
            var schema = {};
            schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';
            schema['SearchPrincipalSource'] = 15;
            schema['ResolvePrincipalSource'] = 15;
            schema['AllowMultipleValues'] = true;
            schema['MaximumEntitySuggestions'] = 50;
            schema['Width'] = '280px';

            var userIDs = "20;43";
            var userObjects = [];
            var userIDsSplit = userIDs.split(";");
            var DeferredCheck = 0;

            getUsers(context, userIDsSplit).done(function (_Users) {
                for (i = 0; i < _Users.length; i++) {
                    var defaultUser = new Object();
                    defaultUser.AutoFillDisplayText = _Users[i].get_title();
                    defaultUser.AutoFillKey = _Users[i].get_loginName();
                    defaultUser.Description = _Users[i].get_email();
                    defaultUser.DisplayText = _Users[i].get_title();
                    defaultUser.EntityType = "User";
                    defaultUser.IsResolved = true;
                    defaultUser.Key = _Users[i].get_loginName();
                    defaultUser.Resolved = true;
                    userObjects.push(defaultUser);
                    DeferredCheck++;
                    if (DeferredCheck == userIDsSplit.length) {
                        SPClientPeoplePicker_InitStandaloneControlWrapper('peoplePickerDiv', userObjects, schema);
                    }
                }
            })
        }
        function getUsers(context, userIDs) {
            var dfd = $.Deferred(function () {
                var users = [];
                for (j = 0; j < userIDs.length; j++) {
                    user = context.get_web().get_siteUsers().getById(userIDs[j]);
                    context.load(user);
                    users.push(user);
                }
                context.executeQueryAsync(
                    function () {
                        dfd.resolve(users);
                    }),
                    function () {
                        dfd.reject(args.get_message());
                    };
            });
            return dfd.promise();
        }
    </script>

我的演示线程


推荐阅读