JavaScript библиотека для работы с формами списков SharePoint (NewForm.aspx, DispForm.aspx, EditForm.aspx)

в 20:20, , рубрики: codeplex, javascript, jquery, sharepoint, sharepoint 2013, метки: , , , ,

Вместо предисловия

var field = new Igotta.StandartListFormsUtility.ListField('Title');
field.setValue('TEST');

Краткое описание

JavaScript библиотека SPListFormUtility предназначена для управления стандартными формами списков SharePoint 2010 и SharePoint 2013:

  • NewForm.aspx
  • DispForm.aspx
  • EditForm.aspx

SPListFormUtility может:

  • читать/устанавливать значения полей
  • скрывать поля
  • делать поля не активными
  • упростить модификацию HTML-кода форм


Сейчас поддерживаются следующие типы полей:

  • SPFieldText
  • SPFieldLookup
  • SPFieldLookupMulti (частично)
  • SPFieldBoolean
  • SPFieldDateTime

Основные характеристики:

  • использует jQuery
  • поддерживает SharePoint 2010 и SharePoint 2013
  • получение полей по internal названиям (не по display названиям)
  • автоматически определяет региональные настройки для SPFieldDateTime полей

How to

1. Скачать библиотеку с CodePlex — splistformutility.codeplex.com
2. Подключить на нужную страницу (NewForm.aspx, DispForm.aspx или EditForm.aspx):
— JS-библиотеку jQuery
— и загруженный файл igotta.sharepoint.standartlistformutility.js

Примечание.
Для подключения JS-файлов можно разместить на странице стандартную веб-часть SimpleFormWebPart. SimpleFormWebPart позволяет выводить любой HTML-код, в том числе и ссылки на JS-файлы. Разместить веб-часть можно вручную или кодом (.Net или JavaScript). В SharePoint 2010 можно “зашить” SimpleFormWebPart прямо в List Definition.
Примеры:

3. Добавить на страницу JS-код:

var sharePointReady = function() {
    // Title - это internal название поля
    var field = new Igotta.StandartListFormsUtility.ListField('Title');
    field.setValue('TEST');
};

$(document).ready(function () {
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () { sharePointReady(); });
});

Примеры

Для примеров ниже используется поле типа SPFieldText, однако все они применимы и для других типов полей (см. документацию на CodePlex).

// 'Title' - internal название поля
var field = new Igotta.StandartListFormsUtility.ListField('Title');

// установить значение поля
field.setValue('TEST');

// получить значение поля
alert(field.getValue());

// спрятать всю строку
field.hide();

// спрятать контрол
field.hideDefaultControl();

// сделать не активным
field.disable();

// раскрасить ячейку контрола
var fieldTd = field.getCol();
$(fieldTd).css('background-color', 'red');

// раскрасить контрол
var fieldControl = field.getControl();
$(fieldControl).css('background-color', 'green');

// получить intrnal название поля
alert(field.getName());

// получить тип поля, для данного примера вернет 'SPFieldText'
alert(field.getType());

Для SPFieldLookupMulti полей сейчас реализован только один метод, который позволяет оставить пользователю для выбора только нужные элементы.

// 'LookupMulti' - internal название поля
var field = new Igotta.StandartListFormsUtility.ListField('LookupMulti');

// в вариантах выбора остануться только элементы с заданными идентификаторами
field.filterLookupMulti([1, 2, 6]);

Пара слов

Библиотека дописывается по мере необходимости. Текущая реализация использовалась в 4-х серьезных проектах и вполне стабильна.

Автор: Alex_BBB

Источник

Поделиться

* - обязательные к заполнению поля