Java 如何改进ListGrid服务器连接/数据源的SmartGWT LGPL实现?
要扩展我的问题,可以说我想在SmartGWT中编程,而不是在SmartGWT()中编程 我有一个2列的ListGrid,由5列数据库表中的数据填充。我不使用数据源(稍后将详细介绍),而是从异步服务获取数据,并在成功时填充它,如下所示Java 如何改进ListGrid服务器连接/数据源的SmartGWT LGPL实现?,java,tomcat,datasource,smartgwt,listgrid,Java,Tomcat,Datasource,Smartgwt,Listgrid,要扩展我的问题,可以说我想在SmartGWT中编程,而不是在SmartGWT()中编程 我有一个2列的ListGrid,由5列数据库表中的数据填充。我不使用数据源(稍后将详细介绍),而是从异步服务获取数据,并在成功时填充它,如下所示predmetiGrid.setData(predmetecord.convertToContractRecordArray(result))。用户可以编辑数据并按下保存按钮保存数据。我实施save的方式是: // repeat this for each edite
predmetiGrid.setData(predmetecord.convertToContractRecordArray(result))代码>。用户可以编辑数据并按下保存按钮保存数据。我实施save的方式是:
// repeat this for each edited field
for (int i=0; i < predmetiGrid.getAllEditRows().length; i++){
int editedRowIndex = predmetiGrid.getAllEditRows()[i];
// for each edite get the full record
PredmetRecord editedRecord = (PredmetRecord)predmetiGrid.getRecord(editedRowIndex);
// create a new DomainObject - Predmet, and set the ID from the
// Row so I have the ID to use for update later
Integer predmetID = editedRecord.getAttributeAsInt("predmetID");
Predmet predmet = new Predmet(predmetID);
// fill Predmet object with either the edited value, or the
// original value (if only one of the fields was changed and not both)
String editedNazivPredmeta = (String)predmetiGrid.getEditValues(editedRecord).get("nazivPredmeta");
boolean isNazivChanged = editedNazivPredmeta != null;
if (!isNazivChanged){
editedNazivPredmeta = editedRecord.getAttribute("nazivPredmeta");
}
predmet.setNazivPredmeta(editedNazivPredmeta);
String editedOpisPredmeta = (String) predmetiGrid.getEditValues(editedRecord).get("opisPredmeta");
boolean isOpisChanged = editedOpisPredmeta != null;
if (!isOpisChanged){
editedOpisPredmeta = editedRecord.getAttribute("opisPredmeta");
}
predmet.setOpisPredmeta(editedOpisPredmeta);
predmetiList.add(predmet);
}
//对每个编辑的字段重复此操作
对于(int i=0;i
在另一种方法中,我调用异步服务:
public void updatePredmeti(List<Predmet> predmeti) throws RpcException, IllegalArgumentException {
for (int i=0; i<predmeti.size();i++){
JdbcPredgledPredmetaDAO.getInstance().updatePredmet(predmeti.get(i));
}
}
public void updatePredmeti(List predmeti)抛出RpcException、IllegalArgumentException{
对于(int i=0;i您可以使用自定义Datasource.Datasource.setDataFormat(DSDataFormat.custom)。使用此设置,数据源将不会处理响应,而必须使用transformResponse()解析它。您可以使用RpcDataSource。web上有一些示例。我不理解您在c点中的意思)。对于b点也不清楚,如果通过异步传输记录列表,则所有插入作业都在服务器端完成,因此如果出现一个错误,则执行必要的操作并引发异常。您将在异步失败时处理它…对于c点,我的意思是,我认为我没有使用最佳做法,并且希望了解m、 对于b点,我说的是数据库回滚。如果我有3个更新,而第二个更新失败,我需要回滚第一个更新。谢谢,我将对此进行研究。