共享点调查:动态更新查找

时间:2018-07-03 21:03:18

标签: sharepoint sharepoint-survey-list

我目前正在设计Sharepoint调查。

第一个问题是从列表中查找,看起来像这样:

Course1
Course2
Course3
Course4

现在,用户必须选择以下答案之一。在使查询正常工作的同时,我在更新列表时遇到了问题。

想法是,用户可以添加自己的课程来补充列表。

例如,他可以选择OTHER并将Course5输入到一个文本框中,然后将其添加到列表中。然后,下一个用户应该能够从下拉列表中选择Course5。

我在将调查结果写入列表时遇到问题-甚至可能吗?

亲切的问候。

1 个答案:

答案 0 :(得分:0)

在选择字段中,它提供了“填充”功能,但遗憾的是,查找列无法提供此功能。

作为一种解决方法,我们可以使用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