Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Criteria != Criterion ListGrid problem

    1. smartgwtpro 3.1

    2. Firefox 19

    Im trying to filter an list grid by a field containing a String[], which can be empty, have one or more Strings. The goal is to find the records which have a given string in the set.

    I wrote an simple AdvancedFilter
    Code:
     AdvancedCriteria criteria = new AdvancedCriteria(OperatorId.OR, new Criterion[] {
    						 new Criterion(EmployeeModel._managerId, OperatorId.STARTS_WITH, String.valueOf(supervisorId)+","),
    						 new Criterion(EmployeeModel._managerId, OperatorId.ENDS_WITH, ","+String.valueOf(supervisorId)),
    						 new Criterion(EmployeeModel._managerId, OperatorId.CONTAINS, ","+String.valueOf(supervisorId)+","),
    						 new Criterion(EmployeeModel._managerId, OperatorId.EQUALS, String.valueOf(supervisorId))
    			    });
    but i got always 0 findings, so i tryed somthing simplier :
    Code:
    getView().getEmployeeGrid().filterData(new Criterion(EmployeeModel._managerId, OperatorId.ICONTAINS, String.valueOf(supervisorId)));
    and still got 0 results, but using
    Code:
    getView().getEmployeeGrid().filterData(new Criteria(EmployeeModel._managerId, String.valueOf(supervisorId)));
    results in showing all records which contain the substring. So I get more then I need because searching for string "1" i will get all that contain at least one "1"

    additionaly using
    Code:
    getView().getEmployeeGrid().filterData(new Criterion(EmployeeModel._managerId, OperatorId.INOT_CONTAINS, String.valueOf(supervisorId)));
    results in finding all records which dont contain the given string, so the correct result

    my grid
    Code:
    employeeGrid = new ListGrid();
    			employeeGrid.setHeight("100%");
    			employeeGrid.setWidth("100%");			
    			employeeGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX);
    			employeeGrid.setSortField(EmployeeModel._fullName);
    			employeeGrid.setAutoFetchData(true);
    			ListGridField employeeName = new ListGridField(EmployeeModel._fullName, "Name");
    			ListGridField managerID = new ListGridField(EmployeeModel._managerId);
    			//managerID.setHidden(true);
    			employeeGrid.setFields(employeeName,managerID);
    my DS:
    Code:
    DataSourceIntegerField pkField = new DataSourceIntegerField(EmployeeModel._id);  
            pkField.setHidden(true);  
            pkField.setPrimaryKey(true);	
            
            DataSourceTextField orgUnitIdField = new DataSourceTextField(EmployeeModel._orgUnitId);
            orgUnitIdField.setHidden(true);
            
            DataSourceTextField managerIDField = new DataSourceTextField(EmployeeModel._managerId);
            managerIDField.setHidden(true);
    		
            setFields(pkField,orgUnitIdField,managerIDField);
    record atributes
    Code:
    	private long id;
    	private String fullName;
    	private String[] managerID;
    Last edited by thomas.brachucy; 7 Mar 2013, 00:31.
Working...
X