Javascript解决Oracle没有布尔类型的问题?

时间:2014-06-18 19:17:57

标签: javascript jquery oracle extjs checkbox

我有一个Web应用程序,它使用Ext.gridEditorGridPanel来显示和修改Oracle数据库中的数据。

这非常适合在文本框中显示字符串值 - 用于显示和修改数据。然而,正如我在敲击头部一段时间后发现的那样 - 它不能用于在复选框中显示布尔值 - 因为Oracle没有布尔类型。

所以,我要走的路上让数据库将布尔值表示为'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

有什么建议吗?

提前致谢, 添

1 个答案:

答案 0 :(得分:0)

我尝试尽可能靠近数据源实现布尔支持层。为此:

  1. 我将模型字段配置为boolean
  2. 我会配置trueRe,以便将'Y'评估为真
  3. 我会实现serialize函数,在发送到服务器之前将true和false转换为'Y'和'N'。
  4. 这样你就可以在Ext中运行,好像Oracle支持boolean。