2010-12-03 11 views
0

とcrm2011サブグリッド内の行を取得し、私はMS CRM、2011年JScriptの初心者としてのJScript

をサブグリッドに問題がある、私はサブグリッドでフォームを持っており、そのフォームののOnSaveで、私はをループにしたいですサブグリッド内のすべての行

JScriptでどうすればいいですか?それとも別の方法でも可能ですか、ex plugin?あなたは次のようにして保存上のサブグリッド値を検査することができます

Thxを

答えて

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 
} 
+0

最初のページにあるレコードのIDのみを返します。サブグリッドの次のページにあるレコードのIDはどうですか? –

+0

これは第1ページを返すだけで、OPは何を得ようとしていたのですか – Dpeif

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); 
の保存を行うことができますサンプルコードです
+0

IDは「grdrelatedcontacts」であることをどのように知っていますか?どこからグリッドのIDを取得できますか? –

+0

grdrelatedContactは、フォームのカスタマイズ時にグリッド名をクリックするだけで、グリッドの名前がわかります –

0

Restコールを使用して、対応するレコードを取得します。S