带有布尔值的SmartGWT动态表格编辑记录

时间:2011-06-08 13:50:58

标签: checkbox edit smartgwt mode

我使用SmartGWT 2.4遇到了以下问题:

  • 我们有一个DynamicForm显示几个静态文本字段(因此表单处于只读模式)。表单在后台使用数据源和我们自己的 FormItemFactory ,根据我们的元数据创建正确的表单项。一些表单项包含显示为字符串的布尔值:例如'isHidden':false 'canShow':true
  • 通过用户操作(按钮点击)我们需要将表单切换到编辑模式。

我们按以下方式进行:

  • 我们首先收集表单值为rec = form.getValuesAsRecord()获取记录对象
  • 然后我们创建一个新的动态表单,并在其中设置与原始
  • 相同的数据源
  • 然后我们调用新创建的动态表单的newForm.editRecord(rec)方法

这样,表单静态值显示为可编辑的输入字段。 然而问题在于那些布尔值。它们被正确转换为复选框,但默认情况下会检查所有复选框。

我认为字符串值'false'或'true'不会被解析为布尔值,并设置为相应复选框项的值。

我可以以某种方式影响这个过程吗?我尝试向 CheckboxItem 提供 FormItemValueParser 的匿名实现,但事实证明只能使用自由文本表单项。

我会非常感谢任何给定的提示。

1 个答案:

答案 0 :(得分:0)

尝试使用record.getAttributeAsBoolean(“formItemName”)

将值显式设置为formItem
BooleanItem boolItem = new BooleanItem("boolname");
DynamicForm form = new DynamicForm();
form.setItems(boolItem);

//Get record
Record rec = form.getValuesAsRecord();
boolItem.setValue("boolname",rec.getAttributeAsBoolean("boolname"));