Search code examples
gwtfilteringsmartgwtlistgrid

date filtering not working in smart gwt


i am developing a smartGWt application that needs to filter list grid content by date and by other staff, every thing is working correctly except the date filtration, this is how i am defining the date fields :

registeredDate = new DataSourceDateField("registrationDate", voc.registeredDate());  
registeredDate.setRequired(true);

verificationDate = new DataSourceDateField("lastVerificationDate", voc.verificationDate());  
verificationDate.setRequired(true); 

the same as every other field

this is how i fill records :

registeredUsersRecords = new ListGridRecord[registeredUsers.length()];

ListGridRecord record = new ListGridRecord();
                record.setAttribute(ID, user.getId());
                record.setAttribute("firstName", user.getFirstName());
                record.setAttribute("lastName", user.getLastName());
                record.setAttribute("email", user.getEmail());
                record.setAttribute("userMainType", type);
                record.setAttribute("isActivated", (user.isActivated())? voc.active(): voc.inActive());
                record.setAttribute("country", user.getSelectedCountry().getValue());
                record.setAttribute("companyName", user.getCompanyName());
                record.setAttribute("registrationDate", user.getRegistrationDate());
                record.setAttribute("lastVerificationDate", user.getVerificationDate());
                registeredUsersRecords[i] = record;

and then i put them into datasource :

    DataSource ds = new DataSource();
    ds.setClientOnly(true);
    ds.setFields(fName, lName, email, type,typeDetails, status, country, companyName, registeredDate,verificationDate);
    for(int i = 0; i< registeredUsersRecords.length; i++){
        ds.addData(registeredUsersRecords[i]);
    }
    registeredUsersListGrid.setDataSource(ds);
    registeredUsersListGrid.fetchData();

Solution

  • You have not shared a complete code.

    Still I am trying to provide you a sample code. Please have a look.

    public class SmartGWTProject implements EntryPoint {
    
        public void onModuleLoad() {
    
            class User {
                private int id;
                private String firstName;
                private Date registrationDate;
    
                public User(int id, String firstName, Date registrationDate) {
                    this.id = id;
                    this.firstName = firstName;
                    this.registrationDate = registrationDate;
                }
    
                public int getId() {
                    return id;
                }
    
                public String getFirstName() {
                    return firstName;
                }
    
                public Date getRegistrationDate() {
                    return registrationDate;
                }
    
            }
    
            DateTimeFormat format = DateTimeFormat.getFormat("MM/dd/yyyy");
    
            User[] registeredUsers = new User[] { new User(1, "a", format.parse("01/20/2014")),
                    new User(2, "b", format.parse("05/20/2013")),
                    new User(3, "c", format.parse("02/20/2014")) };
    
            ListGridRecord[] registeredUsersRecords = new ListGridRecord[registeredUsers.length];
    
            for (int i = 0; i < registeredUsers.length; i++) {
                User user = registeredUsers[i];
                ListGridRecord record = new ListGridRecord();
                record.setAttribute("id", user.getId());
                record.setAttribute("firstName", user.getFirstName());
                record.setAttribute("registrationDate", user.getRegistrationDate());
                registeredUsersRecords[i] = record;
            }
    
            DataSourceDateField registeredDate = new DataSourceDateField("registrationDate", "Date");
            DataSourceTextField firstName = new DataSourceTextField("firstName", "Name");
            DataSourceIntegerField id = new DataSourceIntegerField("id", "ID");
            id.setRequired(true);
            id.setPrimaryKey(true);
            id.setHidden(true);
    
            DataSource ds = new DataSource();
            ds.setClientOnly(true);
            ds.setFields(id, firstName, registeredDate);
            for (int i = 0; i < registeredUsersRecords.length; i++) {
                ds.addData(registeredUsersRecords[i]);
            }
    
            ListGrid registeredUsersListGrid = new ListGrid();
            registeredUsersListGrid.setDataSource(ds);
            registeredUsersListGrid.fetchData();
    
            registeredUsersListGrid.draw();
    
        }
    }