我有一个 Web 应用程序,它使用 Ext.gridEditorGridPanel 来显示和修改 Oracle 数据库中的数据。
这对于在文本框中显示字符串值非常有用 - 既可以显示也可以修改数据。然而,正如我在敲打了一段时间后发现的那样 - 它不适用于在复选框中显示 bool 值 - 因为 Oracle 没有 bool 类型。
因此,我将沿着让数据库将 bool 值表示为“Y”或“N”而不是 true 或 false 的道路 - 并尝试将它们映射到我在网格中手动创建的复选框。
到目前为止,我已经能够渲染网格内的复选框,并通过手动渲染它们来正确显示已选中或未选中的复选框...
{
dataIndex: 'isActive',
editable: true,
sortable: true,
renderer: function(value) {
return "<input type='checkbox'" + ((value == 'Y') ? "checked='checked'" : "") + ">";
},
}
但是,当用户单击“保存”时,我尝试将值保存回数据库时遇到了困难。
真的,如果我能弄清楚如何遍历网格并获取其中包含复选框的每个单元格的值,我就可以将其传递给更新服务器上数据的函数。
到目前为止,我已经能够得到这样的单元格 - 但在尝试确定单元格内的复选框是否被选中时没有运气......
var grid = getMyEditorGridPanel();
grid.getView().getCell(0,1).firstChild
有什么建议吗?
提前致谢, 蒂姆
最佳答案
我会尝试尽可能靠近数据源实现 bool 支持层。为此:
这样你就可以在 Ext 中进行操作,就好像 Oracle 支持 bool 值一样。
关于Oracle 没有 bool 类型的 JavaScript 解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24293454/