kViewerのレコード一覧画面において、一覧に表示されている特定の項目を操作したいです。
kv.index.getElementByCode(recordId, code) 関数
を使用したいと思っていますが、レコードIDが必要なため、ページ内に表示されている各レコードのレコードIDをすべて取得したいです。
どのようなロジックで実現するのが良いでしょうか。
ご教示ください。
kViewerのレコード一覧画面において、一覧に表示されている特定の項目を操作したいです。
を使用したいと思っていますが、レコードIDが必要なため、ページ内に表示されている各レコードのレコードIDをすべて取得したいです。
どのようなロジックで実現するのが良いでしょうか。
ご教示ください。
gonさん
こんにちは。
kv.events.records.fetchedイベントで、一覧画面のレコード取得API正常終了後の処理を定義できます。
ここで取得されたstate.recordsをループすれば、各レコード情報に対して処理できます。
(function() {
'use strict';
kv.events.records.fetched = [function(state) {
state.records.forEach(function(record) {
console.log(record.$id.value);
});
return state;
}];
})();
koichiさん
ご回答いただきありがとうございます。
kv.events.records.fetchedでレスポンスの内容を受け取れるということで試してみたところ、
レコード番号を取得することができました。
大変助かりました。ありがとうございました。
gonさん
私も同じところでつまずいています。
レコード番号取得のサンプルコードを載せていただけますでしょうか。
宜しくお願い致します。
foopiiさん
私が最初の回答いれているのでフォローしますと、上記にあるコードでレコード番号は取得できます。
foreach内の「record.$id.value」がレコード番号です。
ご不明点ございましたらコメントください。
koichi様
ありがとうございます!できました!
ループ処理をどうやって書けばいいか迷っていましたが、
一応、同じように迷っている誰かがみるかもしれないので、こちらにサンプルとして
記載しておきます。
for (var i = 0; i < cnt1.length; i++) {
for (var j = 0; j < cnt2.length; j++) {
var cnt3 = state.records[i][‘S’ + cnt2[j]].value;
if (cnt3 < -1) {
kv.index.getElementByCode(state.records[i].$id.value,‘K’ + cnt2[j]).style.background = ‘#FF88FF’;
}else if (cnt3 < 0) {
kv.index.getElementByCode(state.records[i].$id.value,‘K’ + cnt2[j]).style.background = ‘#FFDDFF’;
}else if (cnt3 > 1) {
kv.index.getElementByCode(state.records[i].$id.value,‘K’ + cnt2[j]).style.background = ‘#77FFFF’;
}else if (cnt3 > 0) {
kv.index.getElementByCode(state.records[i].$id.value,‘K’ + cnt2[j]).style.background = ‘#CCFFFF’;
}
}
}
foopiiさん
お返事が遅くなりました。ループ処理ですが、私の場合以下のように実現しました。
参考にして頂ければと思います。
var record_number = [];
var record_count = 0;
state.records.forEach(function(record) {
record_number[record_count] = record.$id.value;
record_count++;
});
gon様
ループ処理の実例ありがとうございます。
すっきりしてて、こちらの方がいいですね!
ありがとうございました!
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。