Как получить информацию из результата ODATA в переменные JavaScript? - PullRequest
0 голосов
/ 31 октября 2019

Я работаю с SharePoint, чтобы создать кнопку, которую вы можете нажать, чтобы получить запись списка из списка, созданного на этом SharePoint, и заполнить серию текстовых областей на основе того, что извлечено. Затем он будет использоваться либо для редактирования и отправки обратно, либо для заполнения шаблона в формате html для отправки по электронной почте.

Пока у меня есть вызов ODATA:

function retrieveData(){
var incidentID = document.getElementById("IncidentRef");

var requestUri = "https://site/_api/Web/Lists/GetByTitle('Incident List')/Items?$Filter=Title eq '" + incidentID + "'&$select=Title,Id,ImpactedArea,IncidentStatus,Impact,AdvisorActions,Update";
}

Из этогоЯ могу получить ответ XML, который отображает все, что я хочу получить из списка успешно - я не уверен, как это сделать, это перенести его из ответа ODATA XML в переменные JavaScript, которые я затем могу назначитьдо .value различных текстовых областей, которые я настроил для отображения этой информации. Я читал, что вы можете получить данные в виде файла JSON - сохранит ли это данные в консоли, чтобы я мог извлечь их оттуда? Если да, то как вы извлекаете данные из этого?

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Следующий пример кода для справки.

<input id="IncidentRef" type="text"/><input type="button" value="GetItem" onclick="getListItem()"/>
<p>Title: <input id="Title" type="text"/></p>
<p>ImpactedArea: <input id="ImpactedArea" type="text"/></p>
<p>IncidentStatus: <input id="IncidentStatus" type="text"/></p>
<p>Impact: <input id="Impact" type="text"/></p>
<p>AdvisorActions: <input id="AdvisorActions" type="text"/></p>
<p>Update: <input id="Update" type="text"/></p>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
function getListItem(){
    var listName="Incident List";
    var incidentID = $("#IncidentRef").val();
    if(incidentID!=""){
        $.ajax({
            url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('"+listName+"')/items?$filter=Title eq '" + incidentID + "'&$select=Title,Id,ImpactedArea,IncidentStatus,Impact,AdvisorActions,Update",
            type: "GET",
            headers: {
                "Accept": "application/json;odata=verbose",
            },
            success: function (data) {
                if(data.d.results.length>0){
                    var item=data.d.results[0];
                    $("#Title").val(item.Title);
                    $("#ImpactedArea").val(item.ImpactedArea);
                    $("#IncidentStatus").val(item.IncidentStatus);
                    $("#Impact").val(item.Impact);
                    $("#AdvisorActions").val(item.AdvisorActions);
                    $("#Update").val(item.Update);
                }                
            },
            error: function (data) {
                //alert("Error");
            }
        });
    }    
}
</script>

enter image description here

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

Чтобы получить JSON, добавьте следующее в качестве заголовка в ваш запрос REST. (Вы используете JQuery AJAX или ...?)

{"accept": "application/json; odata=verbose"}

или любой из них:

{"accept": "application/json; odata=minimalmetadata"}

{"accept": "application/json; odata=nometadata"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...