smart gwt comboBoxItem 不会根据用户输入进行过滤
smart gwt comboBoxItem deosn't filter based on user input
ComboBoxItem buildings = new ComboBoxItem("buildings", "Building Names") {
public Criteria getPickListFilterCriteria() {
Criteria criteria = new Criteria();
criteria.setAttribute("dependentString", grid.getSelectedRecord().getAttribute("company"));
criteria.setAttribute("dependentString2", "office");
return criteria;
}
};
buildings.setOptionDataSource(CommonLookupDS.getLookupDS(LookupTypesClient.LOOKUP_BUILDINGS_BY_TYPE));
buildings.setValueField("key");
buildings.setDisplayField("value");
buildings.setWidth(125);
buildings.setWrapTitle(true);
buildings.setAutoFetchData(false);
buildings.setRequired(true);
一旦覆盖了 getPickListFilterCriteria 方法,此组合框就会停止过滤用户输入。无论用户输入如何,它都会显示所有选项。
如何解决这个问题?
我将所有条件设置都放入了数据源并且它有效。所以,在方法 transformRequest 中我做
public Object transformRequest(DSRequest dsRequest){
dsRequest.setHttpMethod("POST");
return "<json>";
}
这可以通过将条件附加到数据源来完成
例如
buildings.setOptionDataSource(CommonLookupDS.getLookupDS(LookupTypesClient.LOOKUP_BUILDINGS_BY_TYPE
+"&dependentString="+grid.getSelectedRecord().getAttribute("company")+"&dependentString2="+office));
并防止覆盖 getPickListFilterCriteria 方法
ComboBoxItem buildings = new ComboBoxItem("buildings", "Building Names") {
public Criteria getPickListFilterCriteria() {
Criteria criteria = new Criteria();
criteria.setAttribute("dependentString", grid.getSelectedRecord().getAttribute("company"));
criteria.setAttribute("dependentString2", "office");
return criteria;
}
};
buildings.setOptionDataSource(CommonLookupDS.getLookupDS(LookupTypesClient.LOOKUP_BUILDINGS_BY_TYPE));
buildings.setValueField("key");
buildings.setDisplayField("value");
buildings.setWidth(125);
buildings.setWrapTitle(true);
buildings.setAutoFetchData(false);
buildings.setRequired(true);
一旦覆盖了 getPickListFilterCriteria 方法,此组合框就会停止过滤用户输入。无论用户输入如何,它都会显示所有选项。 如何解决这个问题?
我将所有条件设置都放入了数据源并且它有效。所以,在方法 transformRequest 中我做
public Object transformRequest(DSRequest dsRequest){
dsRequest.setHttpMethod("POST");
return "<json>";
}
这可以通过将条件附加到数据源来完成 例如
buildings.setOptionDataSource(CommonLookupDS.getLookupDS(LookupTypesClient.LOOKUP_BUILDINGS_BY_TYPE
+"&dependentString="+grid.getSelectedRecord().getAttribute("company")+"&dependentString2="+office));
并防止覆盖 getPickListFilterCriteria 方法