控制器内的自定义格式化程序 - SAPUI5
Custome Formatter within a Controller - SAPUI5
我正在尝试格式化性别字段(在 SAP table 字段中:CHAR1
到 0(F) 和 1 (M) 适合 RadioButtonGroup
.
的 selectedIndex
属性
这是我的观点: (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();
}
我的问题是格式化程序根本不工作。
有什么建议吗?
选项一:(不确定它是否也适用于片段)
将 formatter:'.formatter'
更改为 formatter:'Demo1.view.DetailDialog.formatter'
。
选项二:格式化数据,因为无论如何你都是从控制器绑定数据。 (肯定会起作用。)
function fnSuccess(oData, oResponse) {
oData.GendrValue = oData.Gendr == "M"?1:0;
jSonModel.setData(oData);
}
并更改绑定:selectedIndex="{path: 'GendrValue'}"
我正在尝试格式化性别字段(在 SAP table 字段中:CHAR1
到 0(F) 和 1 (M) 适合 RadioButtonGroup
.
selectedIndex
属性
这是我的观点: (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();
}
我的问题是格式化程序根本不工作。
有什么建议吗?
选项一:(不确定它是否也适用于片段)
将 formatter:'.formatter'
更改为 formatter:'Demo1.view.DetailDialog.formatter'
。
选项二:格式化数据,因为无论如何你都是从控制器绑定数据。 (肯定会起作用。)
function fnSuccess(oData, oResponse) {
oData.GendrValue = oData.Gendr == "M"?1:0;
jSonModel.setData(oData);
}
并更改绑定:selectedIndex="{path: 'GendrValue'}"