0

我的 smartgwt 项目在 listgrid 中有问题。

我的 listgrid 有数据来自服务器端,用户允许编辑该网格中的任何记录。

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

当我尝试编辑网格中的任何单元格并尝试遍历网格中的所有记录时,它并没有为我提供我编辑的最新更新的单元格。

我使用下面的代码从我的列表网格中获取所有记录。

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

1 回答 1

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();
}
于 2015-01-05T19:33:27.047 回答