我们正在使用 SmartClient GWT库(参见 Smartclient GWT showcase here )。
我正在尝试制作一个 ListGrid 用户界面,当您单击记录时,字段变为可编辑。就像这个例子:
区别在于我使用我自己的自定义 GWT RPC 服务并手动将 ListGridRecord 添加到我自己的数据源,我看到我的记录出现了,但单击时这些字段不可编辑。我使用 GWTRPCDataSource implementation 创建了自定义数据源并正确覆盖 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);
最佳答案
无论问题是什么,都不在您分享的细节中。试试这些步骤:
确保您使用数据源在 ListGrid 上调用 setDataSource()
确保 ListGrid 字段的名称与数据源中的字段相匹配。这是区分大小写的
确保您在数据源中声明了主键。除非有办法识别记录,否则无法保存编辑
在开发者控制台中查找消息
http://forums.smartclient.com/showthread.php?t=8159#aConsole
shotgun 方法:覆盖 ListGrid.canEditCell() 并返回您想要的任何内容 - 这会覆盖所有声明性设置,例如 field.canEdit。
关于javascript - Smartclient GWT 使用自定义数据源使 ListGridRecord 字段可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195324/