on 12-19-2016 3:12 AM
Hi Experts,
I have a JSON model that is bound to a sap.m.Table. I am trying to filter data based on a column "Date" (bound to property[CreatedOn] of the model) which the service returns in the JSON Object Format ("/Date(timeStamp)"). The table is as below:
sample Date from server:
I am trying to filter the table on the client side but I am not sure on how to implement date filters on the client side. The date displayed are formatted based on
sap.ui.model.type.Date({pattern: 'dd/MM/YYYY'})
The filtering code looks as below:
var fromD = this.getView().byId("idKMFilterPaneDocDateF").getValue() ? new Date(this.getView().byId("idKMFilterPaneDocDateF").getValue()) :
undefined;
var dtFilter = new sap.ui.model.Filter({
path: "CreatedOn",
operator: "EQ",
value1: "dateTime'" + fromD.toJSON() + "'"
});
var binding = oTable.getBinding("items");
binding.filter([filter], "Application");
binding.refresh();
When I execute the above code, I always get "NO Data". I need to implement the "BT" filters as well based on user selection criteria but can't get it to work with "EQ" itself.
Any ideas are appreciated.
Thanks & Regards,
Deepak
Hi Deepak,
You can try creating a custom sorter for dates. It should work as per your requirement. Thanks!
Regards
~Abhi
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
what if you assign date directly. value1: fromD
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Deepak,
Please have look to below details. although this is not implemented for Table and Date field ... but you may give it a try...
<headerToolbar>
<Toolbar>
<Title text="Available Products"/><ToolbarSpacer/><SearchField width="50%" search="onFilterProducts"/>
</Toolbar>
</headerToolbar>
Where "onFilterProducts" is method which will get called when you click on search button in search field.
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/model/Filter",
"sap/ui/model/FilterOperator"
], function(Controller, Filter, FilterOperator) {
"use strict";
return Controller.extend("SAPOpenCourse.com.controller.View1", {
onFilterProducts : function(oEvent){
var aFilter = [],
sQuery = oEvent.getParameter("query"),
oList = this.getView().byId("lstProducts"),
oBinding = oList.getBinding("items");
if(sQuery)
{
aFilter.push(new Filter("ProductID", FilterOperator.Contains, sQuery));
}
oBinding.filter(aFilter);
},
});
});
You can use FilterOperator.BT in place of FilterOperator.Contains.
Hope this will help.
Thanks-
Abhishek
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.