none
достать элементы из sharepoint списка RRS feed

  • Вопрос

  • я написал код, который выводит мне количество элеемнтов и из заголовки "Title"

    <script type="text/javascript"> function PreSaveAction() { getItemsFromView("Бронирования", "Все элементы"); function getItemsFromView(listTitle, viewTitle) { var context = new SP.ClientContext.get_current(); var list = context.get_web().get_lists().getByTitle(listTitle); var view = list.get_views().getByTitle(viewTitle); context.load(view); context.executeQueryAsync( function(sender, args) {getItemsFromList(listTitle, "<View><Query>" + view.get_viewQuery() + "</Query></View>")}, function(sender, args) {alert("error: " + args.get_message());} ); } function getItemsFromList(listTitle, queryText) { var context = new SP.ClientContext.get_current(); var list = context.get_web().get_lists().getByTitle(listTitle); var query = new SP.CamlQuery(); query.set_viewXml(queryText); var items = list.getItems(query); context.load(items); context.executeQueryAsync( function() { var listEnumerator = items.getEnumerator(); var i = 0; var listItemInfo = ''; while (listEnumerator.moveNext()) { var oListItem = listEnumerator.get_current(); i++; listItemInfo += '\nРесурс: ' + i + 'заголовок: ' + oListItem.get_item("Title"); } alert(listItemInfo.toString()); alert("Элементов всего: " + i); }, function(sender, args) {alert("Ошибка: " + args.get_message());} ); } } </script>

    //изображение ошибки: http://i072.radikal.ru/1504/bb/356cee91f150.png

    Но, как только я пытаюсь н этой строке (listItemInfo += '\nРесурс: ' + i + 'заголовок: ' + oListItem.get_item("Title");) вместо  "Title" написать название поля там Реуср или дата начала или дата окончания, то выдаётся ошибка (внизу кода ссылка)

    МОжет кто-нибудь подскажет как вывести всё-таки элементы

    12 апреля 2015 г. 12:05

Ответы

Все ответы

  • Если вы используете русские имена столбцов при их создании, то учтите, что они преобразуются в специального вида строку. Поэтому рекомендуют создавать столбцы с латинским именем, а потом поменять название на русское имя. В этом случае внутреннее системное имя остаётся на латинском.

    Сейчас вы можете вывести, например, с помощью Powershell описание столбцов и посмотреть, какие там сгенерировались имена. Насколько я помню, с помощью Powershell, вы можете даже привести имена к "божескому" виду.


    Сазонов Илья

    https://isazonov.wordpress.com/

    12 апреля 2015 г. 14:07
    Модератор
  • Да, спасибо, только теперь у меня выводится [object Object], а как вывести сами названия
    12 апреля 2015 г. 15:07
  • Если вы используете русские имена столбцов при их создании, то учтите, что они преобразуются в специального вида строку. Поэтому рекомендуют создавать столбцы с латинским именем, а потом поменять название на русское имя. В этом случае внутреннее системное имя остаётся на латинском.

    Сейчас вы можете вывести, например, с помощью Powershell описание столбцов и посмотреть, какие там сгенерировались имена. Насколько я помню, с помощью Powershell, вы можете даже привести имена к "божескому" виду.


    Сазонов Илья

    https://isazonov.wordpress.com/

    Ещё можно в адресной строке internal name увидеть, если открыть свойства колонки.

    [custom.development]

    12 апреля 2015 г. 15:33
  • потому что значение в поле необязательно является строкой. Например у lookup поля.
    Можно использовать fiddler для анализа возвращаемых данных. И developer tools в браузере.

    [custom.development]

    12 апреля 2015 г. 15:38
  • Вот целая подборка способов отображения внутренних имен http://techtrainingnotes.blogspot.ru/2012/10/sharepointfinding-column-display-and.html

    Сазонов Илья

    https://isazonov.wordpress.com/

    12 апреля 2015 г. 16:05
    Модератор
  • Да всё понял, но теперь вообще ничего не пойму. почему-то возвращаются значения "undefined". Несмотря на то, что с помощью CAML Builder в данном поле значения есть
    12 апреля 2015 г. 17:50
  • Видимо в js-коде что-то не так написали. 
    Без примера кода помочь тяжело )

    [custom.development]

    13 апреля 2015 г. 6:25