2014-12-04 1 views
0

변명으로 혼란 언어를 삽입하기위한 보이지 않는 표에 서식하지만 희망이 의미가 있습니다 : 나는 "의 목록을 표시 할 요구 사항이를 사용하여 기존의 바인딩 sap.m.Table

을 (더 명확한 설명을 위해 코드를 참조) 예비 부품 "이 포함되어 있지만이 예비 부품 중 하나에 관련 예비 부품이있는 경우 (예 : 중부 하 버전, 경량 버전 등), 버튼을 클릭 할 수있는 능력이 있습니다 이 "예비 부품"을 문제의 "예비 부품"바로 아래에 삽입하여 표시하십시오.

내가하고 싶은 것을하고있는 sap.m.Table을 얻을 수는 있지만 템플릿과 바인딩을 활용하여 임시 sap.m.Table을 만들고 싶습니다. 대체 예비 부품을 반환하는 관계에 그것을 묶으십시오. 행에 대한 템플릿을 다시 사용하여 적절한 위치에 테이블에 삽입 할 수있는 ColumnListItems 배열을 제공하십시오.

아쉽게도 sap.m.Table에는 표시되지 않으면 실제로 Odata 호출이 수행되지 않고 템플릿 기능을 활용하는 기능이 있습니다.

이 jsbin를 참조 가능성이 훨씬 명확하게 설명하기 : http://jsbin.com/sihofu/4/edit?html,js,output

sap.m.Table를 사용하지 않고 바인딩에 대한 템플릿 출력을 생성하는 방법에 대한 더 나은 아이디어를; 또는 대안으로 sap.m.Table을 화면에 표시하지 않고 (일시적으로) 전화를 걸 수 있습니까? 다음과 같이

특정 코드에있다 볼 수 있습니다 :

var oTable2 = new sap.m.Table(); 
oTable2.attachUpdateFinished(function() { 
    console.log("But this one doesn't"); 
    // What I'm trying to do here is insert these entries below Key 1 
}); 

oTable2.bindAggregation("items", { 
    path: "/ExampleSecondaryValues", 
    template: oTemplate, 

    }); 

감사합니다, 매트

답변

0
지금 휴가에서 돌아

단순히 수액을 확장/강화하여 무력의 비트와 함께이 문제를 해결 .m.table 제어.

컨트롤이 보이지 않고 아무 것도 렌더링되지 않고 UI5 핵심 내에서 일부 최적화가 렌더링되지 않은 경우 AfterRender 이벤트가 컨트롤에서 호출되지 않고이 이벤트가 UpdateFinished 이벤트를 발생시키는 것입니다. .

나는 그 최적화가 적절 여부 논의하지 않을 것이다, 그러나 이것은 단순히 다음과 같은 새로운 제어 테이블 제어 확장 수정 :

sap.m.Table.extend("my.InvisibleTable", { 
    renderer: function(oRm, oControl) { 
     oRm.write("<span"); 
     oRm.writeControlData(oControl); 
     oRm.write("></span>"); 
    } 
}); 

예를 render 함수에서 무언가를 렌더링하기 만하면 AfterRender 이벤트가 호출됩니다. 그러면 차례로 sap.m.Table이 UpdateFinished 이벤트를 발생시켜 렌더링 된 템플리트 항목을 안전하게 표시 테이블에 삽입 할 수있게합니다.

(아마도 템플릿 컨트롤 등을 사용하여)이 작업을 수행하는 훨씬 더 좋은 방법을 알고 싶지만이 방법으로 문제를 해결할 수 있습니다.

건배, 매트

관련 문제