-2

如何检查子网格的特定字段或列是否是企业推荐的?我想使用网络资源来做到这一点。同样由于某些要求,我将不得不使用子网格存在的表单的执行上下文,而不是子网格本身的执行上下文。

4

1 回答 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 回答