作为一名JScript新手,我在MS CRM 2011中遇到子网格问题。
我有一个带有子网格的表单,在该表单的OnSave中,我想遍历子网格中的所有行。
如何使用JScript执行此操作?或者可能是另一种方式,ex插件?
THX
答案 0 :(得分:1)
以下是保存表单时可以执行的示例代码
var gridControl = document.getElementById('grdrelatedcontacts').control;
for (var intRowNumber = 0; intRowNumber < gridControl.getRecordsFromInnerGrid().length; intRowNumber++)
for (var intCellNumber = 0; intCellNumber < gridControl.getRecordsFromInnerGrid()[intRowNumber][3].cells.length; intCellNumber++)
alert(gridControl.getRecordsFromInnerGrid()[intRowNumber][3].cells[intCellNumber].outerText);
答案 1 :(得分:0)
您可以通过执行以下操作来检查保存中的子网格值:
var gridControl = document.getElementById('subgrid_id').control;
var ids = gridControl.get_allRecordIds();
for(i = 0; i < ids.length; i++) {
var cellValue = gridControl.getCellValue('column_name', ids[i]);
// logic
}
在加载时执行此操作更具挑战性,因为子格式是异步加载的,并且在表单onload事件触发时不可能加载。您可以定期检查网格,通过调用表单onload中的以下函数来查看它何时完成加载:
function subGridOnload() {
var grid = document.getElementById('subgrid_id');
if (grid.readyState!="complete") {
// delay one second and try again.
setTimeout(subGridOnload, 1000);
return;
}
// logic
}
答案 2 :(得分:0)
使用Rest调用并检索相应的记录:S
答案 3 :(得分:0)
您可以执行以下操作:
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.0/pws_streedandhousenodatas?$filter=_pws_streetandhousenumberid_value eq " + Xrm.Page.data.entity.getId(), true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function() {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
for (var i = 0; i < results.value.length; i++) {
var pws_streedandhousenodataid = results.value[i]["pws_streedandhousenodataid"];
}
} else {
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send();
在这种情况下,Xrm.Page.data.entity.getId()为您获取当前的记录ID,并且您正在查找所有查找(位于子网格中),还可以添加一些字段以选择更多他们的信息。