开发者

Data Source instance in the list grid

I am using smart gwt 2.2 on windows system in mozilla browser. I am using List Grid instance in my application. In that list grid instance I am filling data using data source. Method for set data:

// Entry point method

  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);
  }

//dummy data

 private static ListGridRecord[] getGridData() {
   ListGridRecord record = new ListGridRecord();
   record.setAttribute("id", "1");
   record.setAttribute("name", "11");
   record.setAttribute("address", "111");
   ListGridRecord record1 = new ListGridRec开发者_Python百科ord();
   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);
  }

On click of the row of the grid I want to add a new data source instance to the grid, but it is not showing any data. Please Help


Try to use grid.fetchData() method and bind datasource one more time to use it.


Try grid.invalidateCache()

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜