Smartclient GWT使用自定义DataSource使ListGridRecord字段可编辑

时间:2010-02-03 20:46:24

标签: javascript data-binding gwt datasource smartgwt

我们正在使用SmartClient GWT库(请参阅Smartclient GWT showcase here)。

我正在尝试创建一个ListGrid UI,当您单击某个记录时,这些字段将变为可编辑状态。就像例子一样:

不同之处在于我正在使用自己的自定义GWT RPC服务并手动将ListGridRecord添加到我自己的DataSource中,并且我看到我的记录显示但单击时字段不可编辑。我使用GWTRPCDataSource implementation创建了一个自定义DataSource,并正确覆盖了executeFetch方法。

是否正在使用创建ListGridRecords的示例XML DataSource进行一些特殊处理,以便将其正确设置为可编辑?

例如,我正在使用CountryXMLDS.java,就像我添加一个自定义记录(我删除了所有字段,但我想要编辑的人口字段)。我看到我的记录显示但是在单击记录时该字段是不可编辑的。

    ListGridField populationField = new ListGridField("population", "population");
    populationField.setType(ListGridFieldType.INTEGER);
    populationField.setCanEdit(true);

   countryGrid.setFields( populationField);

    countryGrid.setCanEdit(true);
    countryGrid.setEditEvent(ListGridEditEvent.CLICK);


    ListGridRecord record = new ListGridRecord();
    record.setAttribute("population", "5");
    CountryXmlDS.getInstance().addData(record);

1 个答案:

答案 0 :(得分:1)

无论问题是什么,都不在你分享的细节中。请尝试以下步骤:

  1. 确保您使用DataSource在ListGrid上调用setDataSource()

  2. 确保ListGrid字段的名称与DataSource中的字段匹配。这是区分大小写的

  3. 确保在DataSource中声明了primaryKey。除非有识别记录的方法,否则无法保存编辑

  4. 在开发者控制台中查找消息

    http://forums.smartclient.com/showthread.php?t=8159#aConsole

  5. shotgun方法:覆盖ListGrid.canEditCell()并返回您想要的任何内容 - 这将覆盖所有声明性设置,如field.canEdit。