如何检查子网格的特定字段或列是否是企业推荐的?我想使用网络资源来做到这一点。同样由于某些要求,我将不得不使用子网格存在的表单的执行上下文,而不是子网格本身的执行上下文。
问问题
153 次
1 回答
0
这有点棘手,因为在加载表单时,子网格没有数据。因此,您必须使用表单的load
事件将事件附加load
到子网格。
此MS Docs Page对此进行了描述。你可以这样做
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);
}
现在您的网格有了一个“加载”事件,因此您可以遍历它的行并检查它的数据
我无法让它适用于不包含数据的子网格
row
我在子网格中获得第一个。一旦我有了,我们就可以遍历每一行的attributes
. 每个属性都有以下方法:
getName 返回选定网格行的属性的逻辑名称。
getRequiredLevel 返回一个字符串值,指示该属性的值是必需的还是推荐的。
setRequiredLevel 设置在保存记录之前是否需要或推荐数据用于选定网格行的属性。
getValue 检索属性的数据值。
setValue 设置属性的数据值。
我正在使用一些现代浏览器功能(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);
}
}
于 2019-10-25T03:52:34.080 回答