вторник, 24 марта 2015 г.

CSR: пользовательский рендеринг для полей определённого типа

Недавно встала задача по разработке пользовательского типа поля, которое потом нужно было особым образом отобразить в стандартном CSR-представлении. Как следствие возникла задача: как сделать шаблон отображения представления, с учётом того, что мы знаем только тип поля, но не знаем имён полей?

Стандартное решение для пользовательского рендеринга поля примерно следующее:

Дальше самостоятельно пришел к решению, что нужно использовать обработчик OnPreRender, и в нём анализировать тип поля:

В результате получил ошибку Type Error. Дальнейшее исследование показало, что SharePoint перед вызовом OnPreRender меняет структуру данных объекта Fields, и правильно нужно писать вот так:

Суммарный код выглядит в итоге так:

Результат в SharePoint: