在sap.ui.table.Table
我在一列中有輸入字段。它將從後端獲取將近300條記錄的數據並綁定到其他列。如何從sap.ui.table.Table的輸入中獲取值?
用戶手動輸入輸入字段。此外,當他點擊提交按鈕時,我必須將所有輸入值作爲數組。請提出建議。
在sap.ui.table.Table
我在一列中有輸入字段。它將從後端獲取將近300條記錄的數據並綁定到其他列。如何從sap.ui.table.Table的輸入中獲取值?
用戶手動輸入輸入字段。此外,當他點擊提交按鈕時,我必須將所有輸入值作爲數組。請提出建議。
可以使用數據表的綁定,作爲Table
控制調用getRows()
訪問的每一行的Input
領域在這種情況下,也不會幫助做到這一點;它只返回只有當前可見行,你有大約300條記錄訪問。
這裏是解決方案:
JSONModel
從後端的所有數據。Input
字段的列。由於JSONModel
支持雙向綁定,因此用戶在Input
字段中輸入的所有值均可在您的模型中使用。
然後,最後遍歷模型的數據得到inputValue爲每一行。
在行動上面的步驟:
步驟1和2:
setModelForTable: function() {
var oModel = sap.ui.model.json.JSONModel(<URLToLoadJSON>);
var length = oModel.getData().results.length;
for (var i = 0; i < length; i++) {
var path = "/results/" + i + "/inputValue";
oModel.setProperty(path, "");
}
}
第3步:
現在,您有inputValue將屬性模型數據的所有項目,在桌子上設置模型;這將顯示最初列中的所有Input
字段爲空,並將在用戶修改它時更新相應的模型條目。
<t:Column>
<t:label>
<Text text="User Input" />
</t:label>
<t:template>
<Input value="{inputValue}" />
</t:template>
</t:Column>
最後,獲取數組中的所有輸入值。
var length = oModel.getData().results.length;
var aInputvalues = []
for (var i = 0; i < length; i++) {
var path = "/results/" + i + "/inputValue";
aInputvalues.push(oModel.getProperty(path));
}
我有這樣的情況有點類似,我用下面的方法做了。如果你真的不需要沒有改變的記錄,它將起作用。
上變化推改變記錄到可變
var source = event.getSource();
source.getModel().getProperty(source.getBindingContext().getPath());
或的值輸入字段。
event.getSource().getValue();
如果你有一個記錄ID,你可以推這個ID和輸入值。 4.關於提交迭代通過[]
嗨dopedev,感謝您的建議。你能詳細解釋一下嗎?請 – user6757698
好的,給我點時間吧! – Dopedev
謝謝dopedev。我正在使用sap.m.Input – user6757698