2020-08-24 15:42发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我有一个需要在其中编辑Sapui5中的动态表的要求。 我面临的挑战是如何识别用户在表中编辑了哪些所有行。
我该如何实现。
我正在将sap.m.Table控件用于动态表。
任何帮助都会得到赞赏。
关于
山地
您好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
/** *用于每一行的编辑 */ 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); //} } }); }
这是您所需要的吗?
最多设置5个标签!
您好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
path = oEvent.getSource()。getBindingContext(" oDataModel")。getPath();
关于,Sandeep这是您所需要的吗?
一周热门 更多>