2014-09-27 8 views
0

나는 목록에있는 문제가있는 내 smartgwt 프로젝트에 있습니다.smartgwt listgrid.getRecordList() 업데이트 된 데이터를 제공하지 않습니다.

내 listgrid 데이터가 서버 측에서 제공되며 사용자는 해당 표에서 모든 레코드를 편집 할 수 있습니다. 내가 그리드 셀을 편집하고 그리드의 모든 기록을 통해 루프를 시도 할 때

searchGrid.setAutoFetchData(true); 
searchGrid.setDataSource(searchDS); 
searchGrid.setAlwaysShowEditors(true); 

, 그것은 나에게 내가 편집 한 최신 업데이트 셀을 제공하지 않습니다.

다음 목록 코드를 사용하여 내 listgrid에서 모든 레코드를 가져옵니다.

private String getGridDetails() { 

    RecordList records = searchGrid.getRecordList(); 

    Document doc = XMLParser.createDocument(); 
    Element rootElement = doc.createElement("ROOT"); 
    doc.appendChild(rootElement); 

    for (int i = 0; i < records.getLength(); i++) { 

     Record rec = records.get(i); 
     Element row = doc.createElement("ROW"); 

     for (String str : rec.getAttributes()) { 

      String propertyVal = rec.getAttributeAsString(str); 

      if (propertyVal != null 
        && propertyVal.equalsIgnoreCase("") != true) { 
       Element columnElement = doc 
         .createElement(str.toUpperCase()); 
       columnElement.appendChild(doc.createTextNode(propertyVal)); 
       row.appendChild(columnElement); 
      } 
     } 
     rootElement.appendChild(row); 
    } 

    return doc.toString(); 
} 

답변

1

하나에 의해, 당신은 루프 일 수있는 모든 편집 및 편집되지 않은 기록을 얻고 싶다면 :

public Record[] getData(ListGrid grid) 
{ 
    RecordList data = new RecordList(); 

    for (int i = 0; i < grid.getTotalRows(); i++) 
     data.add(grid.getEditedRecord(i)); 

    return data.duplicate(); 
} 

하지만 그냥 편집 된 레코드를 검색하려면, 다음 코드를 시도 :

public static Record[] dameDatosLocalesEditedRows(ListGrid grid) 
{ 
    RecordList data = new RecordList(); 
    int[] edited = grid.getAllEditRows(); 

    for (int i = 0; i < edited.length; i++) 
     data.add(grid.getEditedRecord(edited[i])); 

    return data.duplicate(); 
}