我有一个SAPUI5表,其中包含String值数据(例如名称)和整数数据(例如ID)。当我使用字符串的表内搜索选项时,它可以很好地工作。
当我尝试搜索部分ID时,会抛出以下错误:
(未捕获错误:仅#34;字符串"支持的值 FilterOperator:"包含"。)
我想搜索我的整数,好像它们是字符串
尝试1:
var oTextView = new sap.ui.commons.TextView( {
text : {
path : "id",
formatter : function(oContext) {
if (oContext) {
return oContext.toString();
} else
return;
}
}
});
尝试2:
var oTextView = new sap.ui.commons.TextView( {
text : {
path : "id",
type : new sap.ui.model.type.String(),
}
});
尝试3:
将先前的尝试与此结合(结果是我无法再对该列进行表内搜索):
oColumn.setFilterProperty(sap.ui.model.type.String())
oColumn.setSortProperty(new sap.ui.model.type.String())
编辑:视图/控制器
视图:
var oTable = new sap.ui.table.Table();
oTable.setModel(sap.ui.getCore().getModel("myModel"));
oTable.bindRows("/myPath");
var oTextView = new sap.ui.commons.TextView();
oTextView.bindProperty("text", "myProperty");
var oColumn = var oColumn = new sap.ui.table.Column({
label : new sap.ui.commons.Label( {
text : "My Column"
}),
template : oTextView,
sortProperty : "myProperty",
filterProperty : "myProperty",
});
oTable.addColumn(oColumn);
控制器:
var oModel = new sap.ui.model.json.JSONModel(MyData);
sap.ui.getCore().setModel(oModel, "myModel");
答案 0 :(得分:2)
我遇到了同样的问题并且转换为字符串解决了它。但是我会提交错误报告,因为过滤器也应该使用数字。特别是因为排序仅按预期使用数字。作为一种解决方法,我做了以下几点:
var my_string = my_num.toString();
这似乎更好,然后通过上面提出的连接进行隐式转换。这里有一些伪代码,因为有人要求它。字符串值仅添加到用于排序的模型中:
var your_data_model = [{int_value = 111},{int_value=222}];
your_data_model[0].string_value = "111"; //add a string value for filter
your_data_model[1].string_value = "222"; //add a string value for filter
//in your table object add the sorting as usal on the column level
var oColumn = new sap.ui.table.Column({
label : oLabel,
template : oObject
});
oColumn.setSortProperty("int_value"); //sort well for numbers
oColumn.setFilterProperty("string_value"); //filter worlds for string
答案 1 :(得分:0)
尝试使用:
var oTextView = new sap.ui.commons.TextView( {
text : "" + "{id}" + ""
});
这样你的整数将以字符串
的形式发出