Установка значений для разных типов полей SharePoint с помощью JSOM
Бывают говорящие за себя примеры кода. Данная статья является примером, охватывающим установку значений для типов полей (колонок) списков и библиотек документов SharePoint.
function createListItem() {
var clientContext = new SP.ClientContext.get_current();
var oList = clientContext.get_web().get_lists().getByTitle('TestList');
var itemCreateInfo = new SP.ListItemCreationInformation();
this.oListItem = oList.addItem(itemCreateInfo);
// Single line of text
oListItem.set_item('Title', 'New Item');
// Single Choice
oListItem.set_item('FieldChoiceDrop', 'Enter Choice #1');
// Multi Choice
var fieldChoiceMultiArray = new Array("Enter Choice #1","Enter Choice #2");
oListItem.set_item('FieldChoiceMulti', fieldChoiceMultiArray);
// Single Lookup
var fieldLookupSingle = new SP.FieldLookupValue();
fieldLookupSingle.set_lookupId(2);
oListItem.set_item('FieldLookup', fieldLookupSingle);
// Multi Lookup
var lookupsIds = [1,2];
var lookups = [];
for (var ii in lookupsIds) {
var lookupValue = new SP.FieldLookupValue();
lookupValue.set_lookupId(lookupsIds[ii]);
lookups.push(lookupValue);
}
oListItem.set_item('FieldLookupMulti', lookups);
// Yes=1 / No=0
oListItem.set_item('FieldYesNo', 1);
// Single Person
var singleUser = SP.FieldUserValue.fromUser('John Doe');
oListItem.set_item('FieldPersonSingle', singleUser);
// Multi Person
var fieldUserMultiArray = new Array("john@domain.com","John Doe","domainjohn");
var lookups = [];
for (var ii in fieldUserMultiArray) {
var lookupValue = SP.FieldUserValue.fromUser(fieldUserMultiArray[ii]);
lookups.push(lookupValue);
}
oListItem.set_item('FieldPersonMulti', lookups);
// Managed Single
var field = oList.get_fields().getByInternalNameOrTitle("FieldManagedSingle");
var taxField = clientContext.castTo(field, SP.Taxonomy.TaxonomyField);
var taxonomySingle = new SP.Taxonomy.TaxonomyFieldValue();
taxonomySingle.set_label("UK");
taxonomySingle.set_termGuid("3BD553C4-040E-4584-8B0C-3AB1A00D39A6");
taxonomySingle.set_wssId(-1);
taxField.setFieldValueByValue(oListItem, taxonomySingle);
// Managed Multi
var field = oList.get_fields().getByInternalNameOrTitle("FieldManagedMulti");
var taxField = clientContext.castTo(field, SP.Taxonomy.TaxonomyField);
var terms = new SP.Taxonomy.TaxonomyFieldValueCollection(clientContext,getMultiTax(),taxField);
taxField.setFieldValueByValueCollection(oListItem, terms);
// Hyperlink or Picture
var hyperLink = new SP.FieldUrlValue();
hyperLink.set_url("http://www.discovery.com");
hyperLink.set_description("Discovery Channel");
oListItem.set_item('FieldHyperLink', hyperLink);
// Currency
oListItem.set_item('FieldCurrency', '100.50');
// DateTime (date only)
oListItem.set_item('FieldDateTimeDateOnly', '09/18/2014');
// DateTime (with time)
var date = new Date(2014, 8, 18, 5, 23, 30);
var isoDate = clientContext.get_web().get_regionalSettings().get_timeZone()
.localTimeToUTC(date.toISOString());
// isoDate - 2014-09-18T01:23:30.000Z
oListItem.set_item('FieldDateWithTime', isoDate);
// MultiLine text
oListItem.set_item('FieldMultiText', '<p><strong>HTML</strong> текст</p>');
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed)
);
}
function getMultiTax(){
var terms = new Array();
terms.push("-1;#UK|3BD553C4-040E-4584-8B0C-3AB1A00D39A6");
terms.push("-1;#AU|C0FCC1DF-181B-4F1F-9531-25D2A61F5147");
return terms.join(";#");
}
function onQuerySucceeded() {
SP.UI.Notify.addNotification('Элемент создан: ' + oListItem.get_id());
}
function onQueryFailed(sender, args) {
console.log('Ошибка. ' + args.get_message() + '; ' + args.get_stackTrace());
}
В качестве источника использована статья Peter Dotsenko, уж очень она приглянулась.
Опубликовано: 18.09.2014
Автор: Андрей Кольтяков