2016-12-23 2 views
1

Я пытаюсь форматировать гендерное поле (в SAP поле таблицы: CHAR1 к (F) и (M), чтобы соответствовать selectedIndex свойство RadioButtonGroupCustome Formatter в контроллер - SAPUI5

.

Это мое мнение: (DetailDialog.fragment.xml)

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

выше XML фрагмент называется главным контроллером вида:

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:'.formatter' в formatter:'Demo1.view.DetailDialog.formatter'.

Вариант второй: Отформатируйте данные, так как в любом случае вы связываете данные с контроллера. (И, конечно, будет работать.)

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

, а также изменить связывание: selectedIndex="{path: 'GendrValue'}"

Смежные вопросы