在Sapui5中编辑动态表

2020-08-24 15:42发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我有一个需要在其中编辑Sapui5中的动态表的要求。 我面临的挑战是如何识别用户在表中编辑了哪些所有行。

我该如何实现。

我正在将sap.m.Table控件用于动态表。

任何帮助都会得到赞赏。

关于

山地

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我有一个需要在其中编辑Sapui5中的动态表的要求。 我面临的挑战是如何识别用户在表中编辑了哪些所有行。

我该如何实现。

我正在将sap.m.Table控件用于动态表。

任何帮助都会得到赞赏。

关于

山地

付费偷看设置
发送
3条回答
hongfeng1314
1楼-- · 2020-08-24 16:24

您好Sandeep,

每当用户更改任何单元格(复选框,输入框,组合框)时,更改事件都会触发。 触发更改事件后,使用路径和数据更新对全局数组的更改。 在保存时提交这些更改。 下面的代码为更改事件,

//全局数组this.aChange

var path,oData,bPushed;

path = oEvent.getSource()。getBindingContext(" oDataModel")。getPath();

oData = oEvent.getSource()。getBindingContext(" oDataModel")。getObject();

删除oData .__ metadata;

//如果Path已经存在,它将覆盖该行的最新更改

this.aChange.forEach(function(item){

if(item.path === path){item.odata = oData; bPushed = true; }

});

//如果路径不存在,则会将新的订单项推送到包含路径和数据的数组。

如果(!bPushed){

this.aChange.push({

path:路径,odata:$ .extend(true,{},oData)

});

}

谢谢

Gowtham Karanam

野沐沐
2楼-- · 2020-08-24 16:21
Hi 哥谭,谢谢您的回复。 非常有帮助。我还有一个问题,即在oData中,当我检索数据时,要检索其设置为表的OLD数据。 我想要在视图上更改/编辑的数据。 如何实现。并且在下面的" oDataModel"行中是模型名称还是什么?

path = oEvent.getSource()。getBindingContext(" oDataModel")。getPath();

关于,Sandeep
梦想连接
3楼-- · 2020-08-24 16:19
/**
  *用于每一行的编辑
  */

  onEditLine:函数(oEvent,oView){
 var oItem = oEvent.getSource()。getParent();
 var oTable = oView.byId(" idTable");
 var oIndex = oTable.indexOfItem(oItem);
 var oModel = sap.ui.getCore()。getModel(" oEditFlagModel");
 var oFlag = oModel.getProperty("/img/oIndex");
 如果(oFlag ===未定义){
 oModel.setProperty("/img/oIndex",oIndex);
 this.onPress(oItem,true);
 }其他{
 var oPreviousItem = oTable.getItems()[oFlag];
//this.onPress(oPreviousItem,false);
 this.onPress2(oPreviousItem,false);
 var oCurrentItem = oTable.getItems()[oIndex];
 oModel.setProperty("/img/oIndex",oIndex);
 this.onPress2(oCurrentItem,true);
 }
 },

 onPress:函数(oItem,oFlag){
 var oEditableCells = oItem.getCells();
 $(oEditableCells).each(function(i){
 var oEditableCell = oEditableCells [i];
 var oMetaData = oEditableCell.getMetadata();
 var oElement = oMetaData.getElementName();
 如果(oElement ==" sap.m.Input"){
//如果(i!== 1){
 oEditableCell.setEditable(oFlag);
//}
 }
 });
 } 

这是您所需要的吗?

一周热门 更多>