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
but i got always 0 findings, so i tryed somthing simplier :
and still got 0 results, but using
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
results in finding all records which dont contain the given string, so the correct result
my grid
my DS:
record atributes
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)) });
Code:
getView().getEmployeeGrid().filterData(new Criterion(EmployeeModel._managerId, OperatorId.ICONTAINS, String.valueOf(supervisorId)));
Code:
getView().getEmployeeGrid().filterData(new Criteria(EmployeeModel._managerId, String.valueOf(supervisorId)));
additionaly using
Code:
getView().getEmployeeGrid().filterData(new Criterion(EmployeeModel._managerId, OperatorId.INOT_CONTAINS, String.valueOf(supervisorId)));
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);
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);
Code:
private long id; private String fullName; private String[] managerID;