2011-01-19 1 views
0

mozillaブラウザのWindowsシステムでsmart gwt 2.2を使用しています。 私のアプリケーションでList Gridインスタンスを使用しています。 このリストグリッドインスタンスでは、データソースを使用してデータを埋めています。設定データ用 方法:リストグリッドのデータソースインスタンス

//エントリポイント法私は、新しいデータソースのインスタンスを追加したいグリッドの行をクリックするだけで

public void init() { 
    final ListGrid grid = new ListGrid(); 
    DataSource ds= new DataSource(); 
    ds.setClientOnly(true); 
    setDataSourceField(ds); 
    ds.setTestData(getGridData()); 
    grid.setFields(getGridFields()); 
    grid.setDataSource(ds); 
    setGridProperty(grid); 
    grid.addClickHandler(new ClickHandler(){ 
    @Override 
    public void onClick(ClickEvent event) { 
    DataSource ds= new DataSource(); 
    ds.setClientOnly(true); 
    setDataSourceField(ds); 
    ds.setTestData(getGridData()); 
    grid.setFields(getGridFields()); 
    grid.setDataSource(ds); 
    grid.draw(); 
    } 
    }); 
    myCanvas.addChild(grid); 
    } 

//ダミーデータ

private static ListGridRecord[] getGridData() { 
    ListGridRecord record = new ListGridRecord(); 
    record.setAttribute("id", "1"); 
    record.setAttribute("name", "11"); 
    record.setAttribute("address", "111"); 
    ListGridRecord record1 = new ListGridRecord(); 
    record1.setAttribute("id", "2"); 
    record1.setAttribute("name", "222"); 
    record1.setAttribute("address", "222"); 

    return new ListGridRecord[] { record, record1 }; 
    } 

//grid property 
    private static void setGridProperty(ListGrid grid) { 
    grid.setWidth("90%"); 
    grid.setHeight(125); 
    grid.setAutoFetchData(true); 
    } 

//fields 
    private static ListGridField[] getGridFields() { 
    ListGridField field = new ListGridField("id"); 
    ListGridField field1 = new ListGridField("name"); 
    ListGridField field2 = new ListGridField("address"); 
    return new ListGridField[] { field, field1 ,field2}; 
    } 

//data source field 
    protected static void setDataSourceField(DataSource dataSource) { 
    DataSourceField idField = new DataSourceField("id", FieldType.TEXT); 
    idField.setPrimaryKey(true); 
    DataSourceField nameField = new DataSourceField("name", 
    FieldType.TEXT); 
    DataSourceField addField = new DataSourceField("address", FieldType.TEXT); 
    dataSource.setFields(nameField, idField, addField); 
    } 

グリッドには表示されますが、データは表示されません。 )

+0

これも試しました –

答えて

0

grid.invalidateCacheを(試してみてください助けてください

1

grid.fetchData()方法とバインドデータソースを使用する1つのより多くの時間を使用してみてください。

関連する問題