Создание настраиваемого html-раскрывающегося списка, который получает значения управляемых метаданных SharePoint 2016 - PullRequest
0 голосов
/ 16 октября 2019

Я устанавливаю настраиваемую HTML-форму, которая использует JavaScript для добавления элементов в список SharePoint. Мне нужно получить список терминов из управляемых метаданных SharePoint 2016. Это список терминов для офисов. Я хочу получить эти значения и показать их в раскрывающемся списке HTML. Возможно ли это?

1 Ответ

0 голосов
/ 16 октября 2019

Мы можем использовать веб-сервис SharePoint для получения терминов из управляемых метаданных.

/_vti_bin/TaxonomyClientService.asmx

Или мы можем использовать JSOM в SharePoint для достижения этого.

var termsList = "Terms: \n"
function showTerms(termSetId) {
    //We need to load and populat the matching Term Set first.
    var termSetEnum = termSets.getEnumerator();
    while (termSetEnum.moveNext()) {
        var currentTermSet = termSetEnum.get_current();
        if (currentTermSet.get_id() == termSetId) {
            //If termSet Matches, then get all terms.
            context.load(currentTermSet);
            context.executeQueryAsync(
            function () {
            //Load terms
            var terms = currentTermSet.get_terms();
            context.load(terms);
            context.executeQueryAsync(
                function () {
                    var termsEnum = terms.getEnumerator();
                    while (termsEnum.moveNext()) {
                        var currentTerm = termsEnum.get_current();
                        var termName = currentTerm.get_name();
                        var termId = currentTerm.get_id();
                        termsList += termName + ": " + termId;

                        //Check if term has child terms
                        if (currentTerm.get_termsCount() > 0) {
                            //Term has sub terms.
                            recursiveTerms(currentTerm, 1);
                        }
                        alert(termList);
                    }
                },
                function () {
                //failure to load terms.
                });
            },
            function () {
            //failure to load current term set
            });
            break;
        }
    }
}
function recursiveTerms(currentTerm, nestedLoop) {
    //Loop count for formatting purpose.
    var loop = nestedLoop + 1;
    //Get Term child terms
    var terms = currentTerm.get_terms();
    context.load(terms);
    context.executeQueryAsync(
        function () {
            var termsEnum = terms.getEnumerator();
            while (termsEnum.moveNext()) {
                var newCurrentTerm = termsEnum.get_current();
                var termName = newCurrentTerm.get_name();
                termId = newCurrentTerm.get_id();

                //Tab Out format.
                for (var i = 0; i < loop; i++) {
                    termsList += "\t";
                }
                termsList += termName + ": " + termId;
                //Check if term has child terms.
                if (currentTerm.get_termsCount() > 0) {
                    //Term has sub terms.
                    recursiveTerms(newCurrentTerm, loop);
                }
            }
        },
        function () {
        //failure to load terms
        }
    );
}

В следующих статьяхдля справки.

Использование jQuery для возврата GUID управляемого термина метаданных

Доступ к хранилищу терминов таксономии с помощью JSOM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...