Установка значений для разных типов полей 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
Автор: Андрей Кольтяков