4

我正在使用 Ext JS 4 创建一个简单的管理员 UI。我从 Sencha 网站上的这个示例开始。我在表单中添加了一个复选框组(有四个选项),并且我根据表单下方网格中的选定记录动态检查了这些框。一切正常,但是当我将数据发送到服务器时,复选框组中的数据格式因单击的按钮而异。

例如,当我编辑一条记录并单击保存按钮时,Ext JS 发送一个数组,其中包含对应于复选框选中状态的真/假值:

{"available": [true, true, false, false]}

当我创建一个全新的记录并单击添加按钮时,Ext JS 会发送一个数组,其中包含已选中的复选框的名称:

{"available": ["Selection_1", "Selection_2", "Selection_3"]}

最后,如果我创建一条新记录并单击添加按钮但只选中一个复选框,Ext JS 会发送一个字符串值(与第二个示例中发送的数组相反):

{available": "Selection_1"}

为什么 Ext JS 会这样做?这使得处理服务器端的数据变得困难。此外,有没有一种方法可以覆盖保存按钮将数据发送到服务器的方式,以便它以与添加按钮发送的相同格式发送数据?谢谢!

4

1 回答 1

2

您可以使用 allowSingle:false 确保所有写入操作都发送记录数组,而不管记录数如何。这是 API 文档:http ://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.writer.Json-cfg-allowSingle

至于正在发送的值。我不清楚这里到底发生了什么,但你可能想看看这个函数:http ://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.CheckboxGroup-method-获取提交数据

编辑:另一个注释 - 复选框使用inputValue来确定表单提交时要发送的内容。检查此属性的配置。

于 2012-10-30T21:41:25.917 回答