私はコードリストとして機能し、属性ラベルと値のレコードを含むExtJS Storeを持っています。特定のケースでは、しかしExt.Storeが間違ったレコードを返す
renderer: function(value, metaData, record, rowIndex, colIndex, store, view){
var columnName = view.panel.columns[colIndex].name;
var display = value;
if(columnName){
var clString = "cl_t_cl_" + columnName;
var cl = Ext.getStore(clString);
if(cl){
var rec = cl.findRecord("value", value);
display = rec ? rec.get("label") : value;
}
} else if(record.get("label") !== undefined) {
display = record.get("label");
}
return display;
}
:また、私は、その列のレンダラー使用しています店のメソッドfindRecord(フィールド、値)は、店舗内の値を検索し、対応するラベルを表示するグリッド列を持っています間違ったラベルがグリッドに表示されます。たとえば、2つのレコード(9、 'ラベルA')と(99、 'ラベルB')がある場合、グリッドは生の値9の 'ラベルB'を表示します。
私の最初の推測では、トークンによってトークンで検索され、ラベルが正確に一致するかどうかに関係なく、検索トークンがレコードの値に見つかるとすぐにラベルが返される(つまり、99の最初の9文字が検索手順を満たして対応するレコードを返します)。ただし、同じ値の正しいラベルを示すコンボボックスには同じストアが割り当てられます。
この動作は混乱しています。なぜ、コンボボックスが正しく表示されないのはなぜですか。ずっと私はこの問題を修正したいが、何が問題を引き起こすか分からない。この変な振る舞いを説明するExt.Storeについて私が見逃していることはありますか?
ありがとうございます!私はちょうど数分前にそれを見つけました、多分私は文書をより簡潔に読むべきでした... – TobsenB