您好我正在尝试使用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
这样我就可以设置数据。
答案 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中的值匹配,以便可以直接使用值对象。