新規投稿
フォローする

kviewerとformbridgeで、Subtable中のカラムを動的に非表示にできる方法 伺い

kintoneと連携するkviewerとformbridgeで、Subtable中のカラムを動的に非表示できる方法を、教示願います。

というのは、kintoneで定義したSubtableが10カラムあって、kviewerやformbridgeのブラウザ画面では横スクロールが発生するのを避ける為に、Subtableの外の項目の値によって動的にSubtableのカラムを絞って表示したいと思っています。


ところが、kv.detail.getTableElementsByCode(tableCode, columnCode)やfb.getTableElementsByCode(tableCode, columnCode)では、tbody内のtrの個数に応じたDOM-elementが返されるものの、thead内のtrに対応するDOM-elementを得ることができない為、列単位に非表示にすることができませんでした。

あるいは、「そうゆう機能は 無いと断言できる根拠と、機能追加要望を出すための テクニックや要望先経路」をアドバイスしていただくだけでも構いません。

 

ちなみに、formbridgeで、Subtable中の特定カラムの中のimputタグ部を動的に入力禁止にすることは、下記のコードで出来ています。
下記のコードでも、formbridgが展開するsubtableの行の中のセルの中のel-inputやel-input__innerの構造に依存しているにも関わらず、ドキュメント記載されていないインタフェースにつき、formbridgeのバージョンアップ時に動作しなくなるリスクのある危ういコードだと思います。

```

function setInput_for_tableCol(tableCode, columnCode, isNotDisable) {
const tdFieldsEl2 = fb.getTableElementsByCode(tableCode, columnCode)
console.log("at setInput_for_tableCol", tableCode, columnCode, isNotDisable, tdFieldsEl2)
if (tdFieldsEl2 && tdFieldsEl2.length > 0) {
tdFieldsEl2.forEach(tdFieldsEl1 => { // tbody内のtrの個数回 繰り返す。 thead内のtrは含まれない。
try {
tdFieldsEl1.children[0].children[0].disabled = !isNotDisable; // el-input -> el-input__inner
console.log(tdFieldsEl1.children[0].attributes['data-vv-name'].nodeValue)
} catch (err3) {
}
})
}
}

```

0

0件のコメント

サインインしてコメントを残してください。