Quantcast
Channel: SCN: Message List - SAP Fiori
Viewing all articles
Browse latest Browse all 2526

Popover Navigation and Data Binding

$
0
0

Hi Expert,

 

I have created a master detail app. I have button that gives a popover in one of my view fragments. This popover shows a smartform via "get stream" method in the odata service. This popover is a fragment as well. Till i click on the popover, i can see data on my master side and my detail side. When i click on my popover button, the popover works perfectly, but the detail data in my first fragment view disappears. How do i keep the data binding alive. Here is my code :

 

Popover.fragment.xml:

 

<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="sap.m">  <Popover  class="sapUiContentPadding" initialFocus="email" placement="Bottom" title="{Name}">  <Panel xmlns="sap.m"  id="id"  headerText=""  width="100%"  height="auto"  expandable="false"  expanded="false"  expandAnimation="true"  backgroundDesign="Translucent"  expand=""  >  <html:iframe height="700" id="frame" width="700"></html:iframe>  <tooltip></tooltip> <!-- sap.ui.core.TooltipBase -->  <dependents></dependents> <!-- sap.ui.core.Control, since 1.19 -->  <content></content><!-- sap.ui.core.Control -->  <headerToolbar></headerToolbar><!-- sap.m.Toolbar -->  <infoToolbar></infoToolbar><!-- sap.m.Toolbar -->  </Panel>  <footer>  <Toolbar>  <ToolbarSpacer/>  </Toolbar>  </footer>  </Popover></core:FragmentDefinition>

DetailInfoForm.fragment.XML

 

<core:FragmentDefinition  xmlns:l="sap.ui.layout"  xmlns:f="sap.ui.layout.form"  xmlns:core="sap.ui.core"  xmlns="sap.m">  <l:Grid  id="detailFragment"  defaultSpan="L12 M12 S12"  width="auto">  <l:content>  <Button text="" press="handlePopoverPress" type="Transparent" icon="sap-icon://display"/>  <f:SimpleForm  minWidth="1024"  maxContainerCols="2"  editable="false"  layout="ResponsiveGridLayout"  title=""  labelSpanL="3"  labelSpanM="3"  emptySpanL="4"  emptySpanM="4"  columnsL="1"  columnsM="1">  <f:content>  <Label id="labe21" text="PO number."/>  <Text id="text1" text="{Ponumber}"/>  <Label id="labe20" text="Po Item"/>  <Text id="text2" text="{Poitem}"/>  <Label id="labe22" text="Asset No."/>  <Text id="text3" text="{Assetno}"/>  <Label id="label5" text="Description"/>  <Text text="{Itemtext}"/>    </f:content>  </f:SimpleForm>  </l:content>  </l:Grid></core:FragmentDefinition>

Detail.controller.js

 

handlePopoverPress: function (oEvent) {

 

  // create popover

  if (! this._oPopover) {

  this._oPopover = sap.ui.xmlfragment("com.reg.view.Popover", this);

  this.getView().addDependent(this._oPopover);

  var oCtx = oEvent.getSource().getBindingContext();

  oDetailPage.bindElement(oCtx.getPath());

  console.log(oCtx);

  this._oPopover.bindElement("/ZMasterSet(Ponumber='0040005636',Poitem='00010',Assetno='000008139914')/Zsmart_nav");

 

 

  }

 

  // delay because addDependent will do a async rerendering and the actionSheet will immediately close without it.

  var oButton = oEvent.getSource();

  jQuery.sap.delayedCall(0, this, function () {

  this._oPopover.openBy(oButton);

  });

 

 

  var sUrl = "/sap/opu/odata/sap/ZFI_REG_ASSET_V9_SRV";

  var oAssetno =  sap.ui.core.Fragment.byId(this._fragmentName, "text1").getText();

 

 

  var oPonumber =  sap.ui.core.Fragment.byId(this._fragmentName, "text2").getText();

  var oPoitem =  sap.ui.core.Fragment.byId(this._fragmentName, "text3").getText();

  

  var oView = this.getView();

 

 

  var html = new sap.ui.core.HTML();

  var opdfmodel = new sap.ui.model.json.JSONModel();

  var opdfurl = {};

 

 

  var oModel = new sap.ui.model.odata.ODataModel(sUrl, true);

  var oData = oModel.getData();

  var sRead = "/pdfSet(Ponumber='" + oPonumber + "',Poitem='" + oPoitem + "',Assetno='" + oAssetno + "')/$value";

 

 

 

 

  oModel.read(sRead, null, null, true, function(oData, oResponse) {

  var pdfurl = oResponse.requestUri;

  $("#frame").attr('src', oResponse.requestUri);

 

 

  opdfmodel.setData({

 

 

  pdfurl: pdfurl

 

 

  });

  sap.ui.getCore().setModel(opdfmodel);

  oView.setModel(opdfmodel);

 

 

  });

  },


Viewing all articles
Browse latest Browse all 2526

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>