2011-01-19 55 views
0

我在mozilla瀏覽器的windows系統上使用smart gwt 2.2。 我在我的應用程序中使用列表網格實例。 在該列表網格實例中,我使用數據源填充數據。對於組數據 方法:列表網格中的數據源實例

//入口點方法

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

我也試過這個 – 2011-01-19 08:04:23

回答

0

嘗試grid.invalidateCache()

1

嘗試使用grid.fetchData()方法和數據源綁定一個更多的時間來使用它。