Hey
I guess I found a bug in listGrids. The incase search does not work anymore when "setAllowFilterExpressions( true )". Then you need to use the right Upper and lower cases for TextFields.
For example... you want to search a guy named "Tim" in a column called "First Name". You enter "tim" and you will get no results. If enter "Tim" you will find him.
If you remove "setAllowFilterExpressions( true )" you can enter "tim" and "Tim" to find him.
List Grid:
DataSource:
I guess I found a bug in listGrids. The incase search does not work anymore when "setAllowFilterExpressions( true )". Then you need to use the right Upper and lower cases for TextFields.
For example... you want to search a guy named "Tim" in a column called "First Name". You enter "tim" and you will get no results. If enter "Tim" you will find him.
If you remove "setAllowFilterExpressions( true )" you can enter "tim" and "Tim" to find him.
List Grid:
Code:
package com.uds.webadmin.client;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.viewer.DetailViewer;
public class ItemListGrid
{
final DataSource dataSource = ItemSupplyXmlDS.getInstance();
public void initListGrid()
{
ListGrid listGrid = new ListGrid()
{
@Override
protected Canvas getCellHoverComponent( Record record, Integer rowNum, Integer colNum )
{
DetailViewer detailViewer = new DetailViewer();
detailViewer.setWidth( 200 );
detailViewer.setDataSource( dataSource );
Criteria criteria = new Criteria();
criteria.addCriteria( "itemID", record.getAttribute( "itemID" ) );
detailViewer.fetchData( criteria );
return detailViewer;
}
};
ListGridField itemNameField = new ListGridField("itemName");
ListGridField skuField = new ListGridField("SKU");
ListGridField categoryField = new ListGridField("category");
listGrid.setFields(itemNameField, skuField, categoryField);
listGrid.setDataSource( dataSource );
listGrid.setEmptyCellValue( "---" );
listGrid.setAutoFetchData( true );
listGrid.setShowFilterEditor( true );
listGrid.setAutoFitFieldsFillViewport( true );
listGrid.setAllowFilterExpressions( true );
}
}
DataSource:
Code:
package com.uds.webadmin.client;
import com.google.gwt.core.client.GWT;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.fields.DataSourceBooleanField;
import com.smartgwt.client.data.fields.DataSourceDateField;
import com.smartgwt.client.data.fields.DataSourceIntegerField;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.DateDisplayFormat;
import com.smartgwt.client.widgets.grid.ListGridField;
public class ItemSupplyXmlDS
extends DataSource
{
private static ItemSupplyXmlDS instance = null;
public static ItemSupplyXmlDS getInstance()
{
if ( instance == null )
{
instance = new ItemSupplyXmlDS( "ItemSupplyXmlDS" );
}
return instance;
}
public ItemSupplyXmlDS( String id )
{
String dataUrl = GWT.getHostPageBaseURL() + "rest/basedata/get/ItemSupplyXmlDS";
setRecordXPath( "/xmlDSs/xmlDS" );
setDataURL( dataUrl );
setID( id );
DataSourceTextField itemNameField = new DataSourceTextField("itemName", "Item", 128, true);
DataSourceTextField skuField = new DataSourceTextField("SKU", "SKU", 10, true);
DataSourceTextField descriptionField = new DataSourceTextField("description", "Description", 2000);
DataSourceTextField categoryField = new DataSourceTextField("category", "Category", 128, true);
DataSourceIntegerField pkField = new DataSourceIntegerField("itemID");
pkField.setHidden(true);
pkField.setPrimaryKey(true);
setClientOnly( true );
setFields(pkField, itemNameField, skuField, descriptionField, categoryField);
}
}