Hello Friends,
Can you pls. help me on the How to Delete Multiple Lines from the Table. I wrote the below code for deletions but its not working.
MainView.XML
<Table class="myCustomText" id="lineItemsList1" items = "{ArticalMode>/}" mode="MultiSelect"> <columns> <Column demandPopin="true" hAlign="Left" id="articleColumn1" minScreenWidth="Tablet" popinDisplay="Inline"> <Text class="myCustomText" text="Article"/> </Column> <Column demandPopin="true" hAlign="Left" id="descriptionColumn1" minScreenWidth="Tablet" popinDisplay="Inline"> <Text class="myCustomText" text="Qty"/> </Column> <Column demandPopin="true" hAlign="Left" id="quantityColumn1" minScreenWidth="Tablet" popinDisplay="Inline"> <Text class="myCustomText" text="UoM"/> </Column> <Column demandPopin="true" hAlign="Left" id="grossWeightColumn1" minScreenWidth="Tablet" popinDisplay="Inline"> <Text class="myCustomText" text="Description"/> </Column> </columns> <ColumnListItem class="myCustomText" id="detailsListItem1"> <cells> <Input id="articaleId" value="{ArticalMode>Article}" class="sapMTableContentMargin" showValueHelp="true" valueHelpRequest="OnSelectArticle" /> <Input id="QtyId" value="{ArticalMode>Qty}" class="sapMTableContentMargin" /> <Input id="UoMId" value="{ArticalMode>UoM}" class="sapMTableContentMargin" /> <Input id="descId" value="{ArticalMode>DESC}" class="sapMTableContentMargin" /> </cells> </ColumnListItem> </Table> </content> <footer> <Bar> <contentLeft> <Button text="Delete lines" icon="sap-icon://delete" press="oDeletelineItems"/> </contentLeft> </Bar> </footer>
.controller.js
onInit: function() { this.ManualQuoteLineItems = [ {Article: "", Qty:"", UoM: "", DESC: ""}, {Article: "", Qty:"", UoM: "", DESC: ""}, {Article: "", Qty:"", UoM: "", DESC: ""}, {Article: "", Qty:"", UoM: "", DESC: ""}, {Article: "", Qty:"", UoM: "", DESC: ""} ]; // create instance of JSON MODEL this.ArticalMode = new sap.ui.model.json.JSONModel(this.ManualQuoteLineItems); //model.setData(data); this.getView().byId("lineItemsList1").setModel(this.ArticalMode, "ArticalMode"); } ,oDeletelineItems:function(oEvent) { debugger; var oTableModel = this.getView().byId("lineItemsList1").oModels; var dataDelete = oTableModel.ArticalMode.oData; var oQuotationTable = this.byId("lineItemsList1"); var selectedItems = oQuotationTable.getSelectedItems(); if (selectedItems.length === 0) { sap.m.MessageBox.show("Please Select a row to Delete", { icon: sap.m.MessageBox.Icon.WARNING, title: "Manual Quotation", actions: [sap.m.MessageBox.Action.OK], onClose: function(oAction) { // Close the window. } }); return; }else { for ( var i = selectedItems.length - 1; i >= 0; i--) { var path = selectedItems[i].oBindingContexts.ArticalMode.sPath; var idx = parseInt(path.substring(path.lastIndexOf('/')+1)); dataDelete.slice(idx, 1); } //oTableModel.setData(dataDelete); oTableModel.ArticalMode.setData(dataDelete); } oQuotationTable.removeSelections(true); }
Regards
Vijay