2016-12-23 4 views
1

내가 SAP 테이블 필드에 성 필드 (포맷하기 위해 노력하고있어 : CHAR1) 0 (F 에) 및 1 (M을 RadioButtonGroupselectedIndex 특성에 맞게손님 여러분 포맷터 - SAPUI5

. 위의 XML 조각 메인 뷰 컨트롤러에 의해 호출됩니다 ( DetailDialog.fragment.xml)

<RadioButtonGroup width="100%" columns="2" selectedIndex="{path: 'Gendr', formatter:'.formatter' }" id="__group1"> 

:

이 내이다

ItemPress: function(oEvent) { var detailDialog = this.getView().byId("DetailDialog"); var that = this; var view = this.getView(); var path = oEvent.getParameter("listItem").getBindingContext().getPath(); var oDummyController = { formatter: function(gendr) { switch (gendr) { case "M": return 0; case "F": return 1; } }, closeDialog: function() { detailDialog.close(); } }; if (!detailDialog) { detailDialog = sap.ui.xmlfragment(view.getId(), "Demo1.view.DetailDialog", oDummyController); } var jSonModel = new sap.ui.model.json.JSONModel(); function fnSuccess(oData, oResponse) { jSonModel.setData(oData); } var oModel = view.getModel(); oModel.read(path, { success: fnSuccess }) //Set data for dialog this.getView().byId("__formDetail").setModel(jSonModel); detailDialog.open(); } 

제 문제는 포맷터가 전혀 작동하지 않는다는 것입니다.

의견이 있으십니까?

답변

0

옵션 하나를 (너무 조각 작동 확실하지 않은 경우)

formatter:'Demo1.view.DetailDialog.formatter'로 변경 formatter:'.formatter'.

옵션 2 : 어쨌든 컨트롤러에서 데이터를 바인딩하고 있으므로 데이터 서식을 지정하십시오.

function fnSuccess(oData, oResponse) { 
    oData.GendrValue = oData.Gendr == "M"?1:0; 
    jSonModel.setData(oData); 
} 

을 (. 그리고 확실히 작동합니다) 또한 바인딩 변경 : selectedIndex="{path: 'GendrValue'}"