2016-11-17 7 views
1

JavaScriptの非常に単純な機能だと思って自分自身を困惑させました。関数は2つのパラメータを取ります。最初はリストボックス(oField)で、2番目はテーブル(nTable)です。行の新しいインスタンスを追加して、セルの生の値を更新できません

リストボックスにはユーザーが入力され、このリストボックスの値が変更されるたびに、nTableを再作成するために、以下の関数を呼び出し、元のヘッダーとリストボックスの各値の行を追加します。私が午前

function table_build(oField, nTable){ 
    //clear table when selection changes 
    nTable._HeaderRow.setInstances(1); 
    //add new selection to table 
    for(i=0;i<oField.length;i++){ 
     nTable._HeaderRow.addInstance(true); 
     nTable.HeaderRow[i+1].Cell1.rawValue = oField.getDisplayItem(i);  
    } 
} 

問題は、次の行である:

nTable.HeaderRow[i+1].Cell1.rawValue = oField.getDisplayItem(i); 

Iは使用ヘッダ行の値を更新することができる午前:

nTable.HeaderRow.Cell1.rawValue = oField.getDisplayItem(i); 

奇妙であり、新しいインスタンスが追加されたあとにHeaderRow[0]が必要になると思っていたからです。

ここで何が間違っていますか?

答えて

0

私は解決策を見つけました。 addInstance()関数は、新しい行インスタンスを戻します。だから、table_build()関数を更新して、その値を変数(nRow)に割り当ててから、nRowを使用してその行を参照してください。

var nRow = nTable._HeaderRow.addInstance(true); 
nRow.Cell1.rawValue = oField.getDisplayItem(i); 

希望これは、同様のクエリで他の誰に役立ちます:)

関連する問題