Это немного сложно, потому что во время загрузки формы подсетка не имеет данных. Таким образом, вы должны использовать событие формы load
, чтобы прикрепить событие load
к подсетке.
Это описано на этой странице MS Docs . Вы можете сделать это следующим образом:
function attachGridEvent(executionContext)
{
var formContext = executionContext.getFormContext();
var gridContext = formContext.getControl("gridCategories");
// We have the grid, now add a "load" event handler
gridContext.addOnLoad(MyGridLoadedEvent);
}
Теперь у вас есть событие 'load' для вашей сетки, так что вы можете перебирать ее строки и просматривать данные
Я не смог заставить это работать для подсетей, которые не содержат данных
Я получаю первый row
во вспомогательной сетке. Как только у меня будет это, мы сможем пройтись по каждой строке attributes
. Каждый атрибут имеет следующие методы:
getName Возвращает логическое имя атрибута выбранной строки сетки.
getRequiredLevel Возвращает строковое значение, указывающее, является ли значение для атрибута обязательным или рекомендуемым.
setRequiredLevel Устанавливает, требуются ли данные или рекомендуется дляатрибут выбранной строки сетки перед сохранением записи.
getValue Извлекает значение данных для атрибута.
setValue Устанавливает значение данных для атрибута.
Страница MS Docs
Я использую некоторыесовременные функции браузера (map
, =>
), но этот код должен работать для вас
function MyGridLoadedEvent(evt)
{
var gridContext = evt.getEventSource();
var rows = gridContext.getGrid().getRows();
if (rows.getLength() > 0)
{
let rowAttributes = rows.getByIndex(0).getAttribute();
let mappedResults = rowAttributes.map(x => x.getName() + " : " + x.getRequiredLevel());
alert(mappedResults);
}
}