第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

滾動(dòng)時(shí)表中的輸入字段“保持”編輯的數(shù)字在同一行(JSView)

滾動(dòng)時(shí)表中的輸入字段“保持”編輯的數(shù)字在同一行(JSView)

眼眸繁星 2021-06-08 17:56:50
我有一個(gè)帶有輸入字段的 sap.ui.table.Table 并且該表通過 JSON 獲取數(shù)據(jù),效果很好。但是,例如,如果我編輯第一行中的值,并嘗試向下滾動(dòng),則該值“保留”在第一行中,直到不同的值命中該字段。因此,它基本上會(huì)在滾動(dòng)時(shí)更新除編輯過的單元格之外的每個(gè)單元格。之后,我再次向上滾動(dòng)以查看我更改的值,但該值現(xiàn)在再次具有開始時(shí)加載的舊值。我認(rèn)為我綁定的東西根本不正確,因?yàn)槲疫€沒有看到這樣的東西。我知道表只更新行上下文,但我不知道如何做到這一點(diǎn)。這是一個(gè)例子:https : //jsbin.com/yuvujozide/6/edit?html,console,output編輯右側(cè)的“門”并滾動(dòng),以查看它如何消失并編輯左側(cè)的值并滾動(dòng)以查看該值如何隨表滾動(dòng)。我嘗試刪除/設(shè)置 VisibleRowCount 并記錄以查看數(shù)據(jù)是否被多次加載,但事實(shí)并非如此。var oModel = new sap.ui.model.json.JSONModel();var oTable = new sap.ui.table.Table({  visibleRowCount: 12,  selectionMode: sap.ui.table.SelectionMode.Single,  visibleRowCountMode: sap.ui.table.VisibleRowCountMode.Fixed,  editable: true});oModel.setData({ rows: tableRows.value, columns: columnArray });oTable.setModel(oModel);var counter = 0;oTable.bindColumns("/columns", function (sId, oContext) {  var columnName = columnArray[counter];  var defaultTemplate = new sap.m.Input({    value: "{" + columnName + "}"  }).bindProperty("value", columnName, function (cellValue) {    return returnRange(this, oTable, cellValue, columnName, counter, dic);  });  counter++;  return new sap.ui.table.Column({    label: columnName,    template: defaultTemplate,    flexible: true,    autoResizable: true,    width: 'auto',    multiLabels: [      new sap.ui.commons.Label({ text: columnName }),      new sap.ui.commons.Label({ text: dic[Number(counter - 1)].value[0] + " - " + dic[Number(counter - 1)].value[1] })    ]  });});oTable.bindRows("/rows");如您所見,我將 rowData 和 columnNames 分隔為兩個(gè)數(shù)組:tableRows 和 columnArray該returnRange函數(shù)檢查一些值并只返回cellValue我希望輸入字段保留更改后的值(這可能是正常的),因此我可以更改多個(gè)輸入字段,然后我可以通過 Ajax-Call 更新表。
查看完整描述

1 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

問題在于它sap.ui.table.Table具有與默認(rèn)瀏覽器滾動(dòng)不同的自定義滾動(dòng)行為。它不會(huì)為每條記錄創(chuàng)建一行,而是會(huì)創(chuàng)建固定數(shù)量的行并在每次滾動(dòng)后重新綁定這些行。


如果表是可編輯的并且綁定到 a JSONModel,它通常會(huì)創(chuàng)建一個(gè)雙向綁定并根據(jù)用戶輸入更新模型值,因此滾動(dòng)工作正常。但是,由于您為綁定 ( returnRange)提供了自定義格式化程序函數(shù),因此不再可能進(jìn)行雙向綁定。這意味著滾動(dòng)后任何用戶輸入都將丟失。


如果您像這樣刪除格式化程序功能


var defaultTemplate = new sap.m.Input({

    value: "{" + columnName + "}"

});

它會(huì)正常工作。


如果您想驗(yàn)證用戶輸入,您應(yīng)該監(jiān)聽輸入的change事件并使用InputBase#setValue將其設(shè)置為不同的值。這也將反映您在JSONModel.


查看完整回答
反對(duì) 回復(fù) 2021-06-18
  • 1 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)