SmartGWT中的ListGrid中的setData

时间:2012-04-30 10:25:13

标签: gwt smartgwt gwt2 listgrid

您好我正在尝试使用SmartGWT

我有Arraylist

ArrayList<FileDocument> documentsArrayList = new ArrayList<FileDocument>();

//所有值都在documentsArrayList

和一个表

private ListGrid getDocumentTable() {
        if (documentTable == null) {
            documentTable = new ListGrid();
            documentTable.setSize("644px", "379px");
            documentTable.setCanResizeFields(true);

            documentTable.setFields(getStatus(),getIcon(),getName(),getSize(),getModifiedby(),getModifiedDate());
        }
        return documentTable;
    }

网格的字段就像

public ListGridField getName() {
        if (name == null) {
            name = new ListGridField("name","Name");
        }
        return name;
    }

我想将数组列表值的值放到表中。

documentTable.setData(某些列表网格记录);

如何转换ArrayList中的ListGridRecord 这样我就可以设置数据。

2 个答案:

答案 0 :(得分:3)

您需要创建一个方法,将ArrayList作为输入并返回一个ListGridRecord数组,然后使用listGrid.setData(ListGridRecord[] records);

进行设置

启动示例:

 listGrid.setData(getListridRecords(employees)); // set records here 

 private void getListGridRecords(ArrayList employees) {
      ListGridRecords records[]=null;
      if(employees!=null){
       records = new ListGridRecord[employees.size()];
       for(int cntr=;cntr<employees.size();cntr++){
        ListGridRecord record = new ListGridRecord();   
        Employee emp = employees.get(cntr);
        record.setAttribute("name",emp.getName()); //your ListGridField 's name
        record.setAttribute("status",emp.getStatus()); //your ListGridField 's name
        //.. more goes here
        records[cntr] = record;
      }

   }
   return records;
}

另一种方式可能是this

答案 1 :(得分:0)

您也可以使用班级

可以将数组列表转换为可以添加到ListGridField的setData方法的recordList。 下面是实现的代码片段。

`RecordList recordList = new RecordList();
 for(DocumentsArrayList documentsArray: documentsArrayList)
 {
  Record record = new Record();
  record.setAttribute("Name", getName());
  record.setAttribute("size", getSize());
  record.setAttribute("user", getuser());
  recordList.add(record);
 }          
 documentTable.setData(recordList);
 }

` 所有属性名称都应与POJO中的值匹配,以便可以直接使用值对象。