javascript - Smartclient GWT 使用自定义数据源使 ListGridRecord 字段可编辑

标签 javascript data-binding gwt datasource smartgwt

我们正在使用 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);

最佳答案

无论问题是什么,都不在您分享的细节中。试试这些步骤:

  1. 确保您使用数据源在 ListGrid 上调用 setDataSource()

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

  3. 确保您在数据源中声明了主键。除非有办法识别记录,否则无法保存编辑

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

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

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

关于javascript - Smartclient GWT 使用自定义数据源使 ListGridRecord 字段可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195324/

相关文章:

java - 使用 GWT 时出现 HTTP 错误 503 (SERVICE_UNAVAILABLE)

java - GWT 应用程序中的静态资源

javascript - 如何在从 javascript(Internet Explorer 和 Edge)更改后重绘 SVG

javascript - polymer 行为共享属性

javascript - 如何匹配字符串中的日期

c# - 在数据绑定(bind)控件中操作数据绑定(bind)值? ASP.NET 网络表单

php - 自动刷新无限div

c# - 更改数据源时更新绑定(bind)控件的更好方法

android - 单击带有 RecyclerView 和 DataBinding 的项目后如何调用导航操作?

java - GWT - 从 context.xml 加载配置项