我正在开发Dynamic CRM365插件,在我的实体视图中,我需要知道在使用 DOM 检测之前已选择了哪个项目,但是,我无法通过认证,因为所有 DOM 访问都是风险并且需要更换,因此,我检查了 Xrm.Page.getControl 和 Xrm.Page.ui.controls ,但没有运气。
我通过的 Xrm.Page.getControl(" ssl_notesforsigns&#34)或 Xrm.Page.getControl(" ssl_notesforsign&#34) => return null
我致电 Xrm.Page.ui , ui = null。
知道如何通过代码获取网格吗?
由于
答案 0 :(得分:0)
很高兴听到您不再想要访问DOM。如你所说,这完全不受支持。
表单上子网格的名称是什么?如果您转到表单编辑器并查看子网格的属性,您将看到名称(我猜它不是名为 ssl_notesforsigns )。此名称是您应该使用的名称,可以在调用Xrm.Page.getControl("namehere")
以获取网格上下文时使用。
Xrm.Page
已被弃用(即使您仍然可以使用它)。相反,您应该通过执行上下文获取对网格上下文的引用。见Client API grid context。对于在表单事件上执行的代码,您可以通过表单上下文获取网格上下文,如下所示:
var formContext = executionContext.getFormContext(); // get the form Context
var gridContext = formContext.getControl("namehere"); // get the grid context
当您引用网格上下文时,可以使用getSelectedRows()获取所选行:
var allSelectedRows = gridContext.getGrid().getSelectedRows();