2

我们正在使用SmartClient GWT库(请参阅此处的 Smartclient GWT展示)。

我正在尝试制作一个 ListGrid UI,当您单击记录时,字段变得可编辑。就像这个例子:

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

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

例如,我使用 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);
4

1 回答 1

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。

于 2010-02-09T19:56:22.087 回答