Вместо предисловия
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