Обзор Sharepoint: динамически обновляемый поиск - PullRequest
0 голосов
/ 04 июля 2018

В настоящее время я работаю над созданием опроса Sharepoint.

Первый вопрос - это поиск в списке, который выглядит следующим образом:

Course1
Course2
Course3
Course4

Теперь пользователь должен выбрать один из этих ответов. Пока у меня работает поиск, у меня проблема с обновлением списка.

идея заключается в том, что пользователь может добавлять свои собственные курсы в дополнение к списку.

Так, например, он может выбрать ДРУГОЕ и ввести Course5 в текстовое поле, которое затем должно быть добавлено в список. Затем следующий пользователь сможет выбрать Course5 из выпадающего списка. 101

У меня проблемы с записью результата опроса в список - это вообще возможно?

С уважением.

1 Ответ

0 голосов
/ 04 июля 2018

В поле выбора он предоставляет функцию «заполнения», к сожалению, столбец поиска не может предоставить эту функцию.

В качестве обходного пути мы можем с помощью jQuery добавить текстовое поле и кнопку в столбце поиска ниже на странице newform.aspx. Добавьте текст в текстовое поле и нажмите кнопку «Добавить», затем добавьте данные в список поиска. Следующий пример для справки:

<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
var questionTitle="question1";
var lookupListName="CL30";
$(function(){   
    $("select[title='"+questionTitle+"']").closest("td").append("<input id='lookupitemTitle' type='text'/> <input id='addlookupitembtn' type='button' value='Add'>");
    $("#addlookupitembtn").click(function(){
        if($("#lookupitemTitle").val().trim()!=""){
            AddListItem(lookupListName);
        }
    });
});
function AddListItem(listName){
    var itemType = GetItemTypeForListName(listName);
    var item = {
        "__metadata": { "type": itemType },
        "Title": $("#lookupitemTitle").val()
    };

    $.ajax({
        url: _spPageContextInfo.siteAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items",
        type: "POST",
        contentType: "application/json;odata=verbose",
        data: JSON.stringify(item),
        headers: {
            "Accept": "application/json;odata=verbose",
            "X-RequestDigest": $("#__REQUESTDIGEST").val()
        },
        success: function (data) {
            var item=data.d;
            $("select[title='"+questionTitle+"']").append("<option selected='selected' value='"+item.ID+"'>"+item.Title+"</option>");
        },
        error: function (data) {
            alert("Error");
        }
    });
}
function GetItemTypeForListName(name) {
    return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";
}    
</script>

enter image description here

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