smartgwt ListGridRecord programmgesteuert Bearbeiten Problem
Ich benutze smartgwt und ich habe eine ListGrid, in der ich einige aufgefüllte Werte in ListGridRecord. nun, wenn ich irgendwelche listGridRecord Feld Wert programmgesteuert durch setAttribute(String fieldName, String value) und aktualisieren des Feldes durch ListGridRecord.refreshFields(), dann werden die Werte erhalten, spiegelt sich in der Benutzeroberfläche. aber das problem ist, wenn ich bin Bearbeiten, die gleichen ListGridRecord durch Doppelklick. dann den Wert verloren oder werden aus der Benutzeroberfläche entfernt.
class FieldRecord extends ListGridRecord{
private int id;
private String name;
public void setID(Long id) {
setAttribute(Constant.ID, id);
}
public void setName(String name) {
setAttribute(Constant.NAME, name);
}
public Long getID() {
return getAttribute(Constant.ID);
}
public String getName() {
return getAttribute(Constant.NAME);
}
}
class testData {
FieldDataSource fieldDS = new FieldDataSource();
FieldRecord fieldRec = new FieldRecord();
//set some default value of record.
fieldDS.addData(fieldRec);
FieldGrid fieldGrid = new FieldGrid();
fieldGrid.setDataSource(fieldDS);
public void parseValue(){
//on some condition
fieldRec.setAttribute(Constant.NAME, "high");
//programmaticaly set record value and that value is removed when i double click on
that record.
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hoffe das FieldGrid ist ein ListGrid.
Sollte man verwenden setFields zu befestigen ListGridRecord zu ListGrid
Versuchen Sie, die ListGrid/FieldGrid ist autoSaveEdits auf false.
Einstellung autoSaveEdits false wird der "Massen-update" /"mass delete" - Interaktion, wo die änderungen gespeichert werden, werden alle bearbeiteten Zellen (über mehrere Zeilen, wenn zutreffend) bis ListGrid.saveEdits genannt wird, zum speichern einer bestimmten Zeile, oder ListGrid.saveAllEdits wird aufgerufen, um alle änderungen zu speichern, die in einem batch.
Update
Verwenden addRowEditorExitHandler für ListGrid und explizit setzen Sie die neuen Werte wie unter