내 HANA 테이블은 20 개의 필드로 구성되어 있지만 브라우저에서 XML보기를 통해 각 레코드의 5 개 필드 만 표시하도록하고 싶습니다. 그러나 다시 브라우저에서 특정 행을 클릭하면 해당 레코드의 20 개 필드를 모두 볼 수 있습니다. 그게 어떻게 가능할까요?보기에서 몇 개의 필드를 보는 방법 그러나 나중에 레코드를 클릭하면 모든 필드가 표시되어야합니까?
답변
이것은 고전적인 마스터 디테일 패턴이며 아주 잘 해결할 수 있습니다.
items="{
path: '/AwesomeStuff',
parameters: {
select: 'Id,Name'
}
}"
: 마스터보기에서
, 당신은 당신이select
매개 변수를 사용한다, 보통에 따라 설정 중 하나로, OData 엔티티 테이블의 바인딩을 설정할 수 있지만 필드의 번호가 전송되는 제한 테이블에
ColumnListItem
의
press
이벤트가 구현되어야하며 해당 이벤트 핸들러에서 라우터를 사용하고 예를 들어 탐색하는 것이 가장 좋을 것입니다. 경로
/AwesomeStuff/12345
.
세부 정보보기에서 마스터에서 일어나는 일에 응답하는 핸들러를 만들어야합니다. 항해. ,
this.getRouter().getRoute("AwesomeStuff").attachMatched(this.onRouteMatched, this);
을 onRouteMatched
핸들러의 구현에 의해 기록 된 데이터의 전체 집합에 상세보기를 결합 : 당신은 예를 들어, 상세보기에서 라우터에 이벤트 처리기를 바인딩하여이 작업을 수행 할 수
this.getView().bindElement({
path: this.getModel().createKey(
"/AwesomeStuff",
{ Id: oEvent.getParameter("arguments").Id })
}});
bindElement
메서드는 (자세히) 뷰를 단일 OData 요소 (목록이 아님)에 바인딩합니다. 이 요소가 ODataModel에 캐시되면 재사용됩니다. 그러나 캐시에 없으면 서버에 요청합니다. 상세보기의 전체 데이터 세트 (기본값)를 원할 경우 select
매개 변수를이 호출에서 제외 할 수 있습니다.
일부 코드 샘플을 찾으려면 SAP WebIDE의 "SAP Fiori Master-Detail Application"템플리트에서 새 프로젝트를 생성하십시오.
저는 UI5를 처음 사용합니다 ... 자세히 설명해 주시겠습니까? –
그것은 이미 아주 정교한 대답이었습니다. 어느 부분을 더 명확하게해야합니까? – jpenninkhof
자세히보기에서 데이터를 가져올 수 없습니다 .. 자세히 cntrlr code-onInit : function() { \t \t var oRouter = sap.ui.core.UIComponent.getRouterFor (this); \t \t \t \t oRouter.getRoute ("home"). attachMatched (this._onObjectMatched, this); \t \t \t \t }의 \t \t는 _onObjectMatched : 함수 (oEvent) { \t \t \t VAR의 oArgs, oView 단계; \t \t \t oArgs = oEvent.getParameter ("arguments"); \t \t \t oView = this.getView(); \t \t \t oView.bindElement ({ \t \t \t \t 경로 : this.getModel().createKey ( \t \t \t \t "/ jobdetails" \t \t \t \t {ID :. oEvent.getParameter ("인자") ID}) \t \t \t}); \t \t \t console.log ('id :'+ oEvent.getParameter ("arguments"). Id); \t \t} –
그래서 5 개의 열이있는 테이블이 있고 선택한 테이블 행에만 20 개의 열을 표시 하시겠습니까? UI 디자인이 어떻게 생겼는지 궁금합니다. – Qualiture
"?" 영어로. – peterh