我们正在使用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);
答案 0 :(得分:1)
无论问题是什么,都不在你分享的细节中。请尝试以下步骤:
确保您使用DataSource在ListGrid上调用setDataSource()
确保ListGrid字段的名称与DataSource中的字段匹配。这是区分大小写的
确保在DataSource中声明了primaryKey。除非有识别记录的方法,否则无法保存编辑
在开发者控制台中查找消息
http://forums.smartclient.com/showthread.php?t=8159#aConsole
shotgun方法:覆盖ListGrid.canEditCell()并返回您想要的任何内容 - 这将覆盖所有声明性设置,如field.canEdit。