0

As an JScript newbie, I have a problem with a subgrid in MS CRM 2011.

I have a form with a subgrid and in OnSave of that form, I want to loop over all the rows in the subgrid.

How can I do this with JScript ? Or is it possible another way, ex plugin ?

Thx

4

4 に答える 4

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);
于 2011-06-11T06:58:40.267 に答える
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
}
于 2011-05-03T16:48:14.167 に答える