Я везде искал решение этой проблемы и не нашел. Если бы кто-нибудь мог подсказать мне трюк, я был бы великолепен.
Область действия: я создаю надстройку SharePoint для SharePoint Online. В appweb я пытаюсь использовать веб-часть для получения ClientContext объекта ListItem через CSOM или JSOM. Я не могу использовать песочницу.
Основная цель: мне нужен ClientContext, чтобы я мог получить тело ListItem, использовать GetBytes и, скажем, zip или UTF8 закодировать тело. Мне также нужно использовать SP.ListOperation.Selected.getSelectedItems (clientContext), чтобы выбрать несколько ListItems, которые были выбраны пользователем.
Пример кода (неполный):
<script>
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', sharePointReady);
function helloWorldTest() {
alert("Function helloWorldTest Active");
var listURL = '/sites/dev/';
var clientContext = new SP.ClientContext(listURL);
var olist = clientContext.get_web().get_lists().getByTitle('Secure List')
var currentLib = web.get_lists().getById(currentlibid); //Gets the current Library
var selectedItems = SP.ListOperation.Selection.getSelectedItems(clientContext);
for (var i in selectedItems) {
var currentItem = currentLib.getItemById(selectedItems[i].id);
context.load(currentItem);
for (i in items) {
selItems += '|' + selectedItems[i].id;
}
}
}
/*
var itemCreateInfo = new SP.ListItemCreationInformation();
this.oListItem = oList.addItem(itemCreateInfo);
oListItem.set_item('Title', 'Test');
oListItem.set_item('Body', 'Hello World!');
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
alert("fuction complete");
}
function onQuerySucceeded() {
alert('Item created: ' + oListItem.get_id());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
}
*/
</script>
Я был бы очень признателен за помощь. Спасибо.