Some part of view is not rendered while navigating back to the page SAPUI5 -
i've hierarchy of 3 pages. when i'm navigating 3rd page 2nd page(product) doesn't render completely. first time navigation forward works fine. if navigate 3rd page first navigation category product not rendering 2nd page.
the xml of product page follows `
<mvc:view xmlns:common="sap.suite.ui.commons" xmlns:m="sap.m" xmlns:mvc="sap.ui.core.mvc" controllername="dlesdlesdashboard.controller.solution.solutiondetail" xmlns:dles="dlesdlesdashboard.control" xmlns:core="sap.ui.core" xmlns:l="sap.ui.layout"> <page xmlns="sap.m" title="detail" id="solutiondetail" class="solutiondetail" backgrounddesign="standard" shownavbutton="true" navbuttonpress="onnavback"> <customheader> <bar id="__bar2_copy2"> <contentleft> <button id="lijsld" tooltip="back" icon="sap-icon://nav-back" press=".onnavback" activeicon="sap-icon://nav-back"/> <label class="headerfont" text="detail" labelfor="input-b" design="bold"/> </contentleft> <contentmiddle> <title text="course id : {dlesscore>id}" width="100%"/> </contentmiddle> <contentright></contentright> </bar> </customheader> <bar id="bar2"> <contentleft> <label text=" {dlesscore>lj_solution}" labelfor="input-b"/> </contentleft> <contentmiddle> <label text="course owners : stephen howard" labelfor="input-b"/> </contentmiddle> </bar> <bar> <contentmiddle> <label text="17 june 2017" labelfor="input-b"/> </contentmiddle> <contentright> <link class="toolbarusertext" text="print" press=".linktocontributions"/> </contentright> <contentright> <link class="toolbarusertext" text="about" press=".handlecourseclick"/> </contentright> <contentright> <link class="toolbarusertext" text="contacts" press=".linktocontributions"/> </contentright> </bar> <l:grid class="sapuismallmargintop" defaultspan="l4 m6 s12" id="coursedetailsgridlayout"> <l:content> <panel class="coursecontent"> <dles:dlesyourscoretile topic="" dles="{dlesscore>dles}" id="solutiondetaildles"></dles:dlesyourscoretile> <layoutdata> <l:griddata id="gld222" span="l6 m6 s12"/> </layoutdata> </panel> <panel class="coursecontent" height="100%"> <dles:npsscoretile topic="" nps="55"></dles:npsscoretile> <layoutdata> <l:griddata id="gld221" span="l6 m6 s12"/> </layoutdata> </panel> <panel class="coursecontent" height="1000px"> <content> <tabcontainer id="tabcoursedetail" class="monitoringlandscapeselector peddingleftright"> <items> <tabcontaineritem id="solutioncourses" name="courses"> <content> <tilecontainer id="idcoursescontainer"> <tiles> <dles:scoretile name="{score>name} responses" topicid="{score>id}" topic="{score>solution}" result="{score>result}" id="tiledlescourse" press=".handlecourseclick"></dles:dlesscoretile> </tiles> </tilecontainer> </content> </tabcontaineritem> <tabcontaineritem id="idjournies" name="journies"> <content></content> </tabcontaineritem> </items> </tabcontainer> </content> <layoutdata> <l:griddata id="gld2212" span="l12 m12 s12"/> </layoutdata> </panel> </l:content> </l:grid> </page> </mvc:view>` when i"m clicking on navigation following event fired same method used on 2nd page navegation navigation other page
handlecourseclick: function(oevent) { var = this; //get current tile detial eg course id can sent next page. var s = oevent.getsource(); var topic = s.getproperty("topicid"); this.getrouter().navto("solution", { solutionid: topic }); }, for navigation back,
onnavback: function(oevent) { var ohistory, sprevioushash, orouter; // in cases display target when button pressed if (this._odata && this._odata.fromtarget) { this.getrouter().gettargets().display(this._odata.fromtarget); delete this._odata.fromtarget; return; } // call parent's onnavback basecontroller.prototype.onnavback.apply(this, arguments); }, and menifest.js code
"routes": [ { "pattern": "", "name": "apphome", "target": "home" }, { "pattern": "solution/{solutionid}", "name": "solution", "target": "solution" }, { "pattern": "course/{courseid}", "name": "course", "target": "course" } ], "targets": { "home": { "viewname": "home", "viewlevel": 1 }, "notfound": { "viewname": "notfound", "transition": "show" }, "solution": { "viewpath": "dlesdlesdashboard.view.solution", "viewname": "solutiondetail", "viewlevel": 2 }, "course": { "viewpath": "dlesdlesdashboard.view.course", "viewname": "coursedetail", "viewlevel": 3 } } ` and basecontroller navback methos
onnavback: function (oevent) { var ohistory, sprevioushash; ohistory = history.getinstance(); sprevioushash = ohistory.getprevioushash(); if (sprevioushash !== undefined) { window.history.go(-1); } else { this.getrouter().navto("apphome", {}, true /*no history*/); } }
don't wrap tab controlinto gridview. put tab control outside gridview. , remove panel tages in xml view of page. best way remove 1 one control , check.
Comments
Post a Comment