2012-04-30 3 views
1

Привет, я пытаюсь использовать SmartGWT.setData в 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

Вам нужно создать метод, который будет accpet вашего 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

+0

oops my error. Я его отредактировал :) –

+0

вы можете мне помочь с этим вопросом [ссылка] (http://stackoverflow.com/q/10412060/780393) – GameBuilder

+0

В чем проблема? –

0

Вы также можете использовать класс

список массива может быть ко erted в recordList, который можно добавить к методу setData ListGridField. Ниже приведен фрагмент кода реализации.

`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, так что значение объекта может быть использован непосредственно.

Смежные вопросы