Как сохранить входные данные на моей таблице в SharePoint? - PullRequest
0 голосов
/ 10 апреля 2020

Я создал таблицу на одной странице SharePoint и хотел бы, чтобы другие редактировали эту таблицу. однако всякий раз, когда они добавляют изменения, и я обновляю sh мою страницу, входные данные исчезают. Я использовал contenteditable для этого. Что может быть эффективным способом сделать это? Мне не нужно сохранять предыдущие данные, которые были на столе.

1 Ответ

0 голосов
/ 14 апреля 2020

Данные на странице, которые не были сохранены в базе данных или не были жестко запрограммированы, исчезнут после обновления sh. Вы можете создать список SharePoint, чтобы сохранить содержимое, отредактированное пользователями, и использовать Rest API, чтобы получить элемент и создать новый элемент. Пример кода:

    <style>
.output {
    font: 1rem 'Fira Sans', sans-serif;
}

blockquote {
    background: #eee;
    border-radius: 5px;
    margin: 16px 0;
}

blockquote p {
    padding: 15px;
}

cite {
    margin: 16px 32px;
}

blockquote p::before {
    content: '\201C';
}

blockquote p::after {
    content: '\201D';
}

[contenteditable='true'] {
    caret-color: red;
}
</style>
<blockquote contenteditable="true">
    <p id="content">Edit this content to add your own quote</p>
                <input type="button" value="finish edit" id="submit1" />
</blockquote>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>
$(function () {

getListData();
$("#submit1").click(function(){
CreateListItemWithDetails('Contents',$("#content").text())
})
});

function getListData() {
var fullUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('Contents')/items";
$.ajax({
url: fullUrl,
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
},
success: onQuerySucceeded,
error: function onQueryFailed() {
alert('Error!');
}
});
}

function onQuerySucceeded(data) {
if(data.d.results.length>0){
var index=data.d.results.length - 1;
$("#content").text(data.d.results[index].Title)
}
}


                function CreateListItemWithDetails(listName, newItemTitle) {
    var itemType = GetItemTypeForListName(listName);
    var item = {
        "__metadata": { "type": itemType },
        "Title": newItemTitle
    };

    $.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) {
            console.log("success");
        },
        error: function (data) {
            console.log("fail");
        }
    });
}

// Get List Item Type metadata
function GetItemTypeForListName(name) {
    return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";
}
</script>

Я просто использую элемент p, чтобы привести пример, и вам нужно изменить заголовок списка на свой. Отредактированный контент будет сохранен в SharePoint только после нажатия кнопки редактирования Fini sh.

...