Oracle APEX Interactive Grid自定义操作数据库更新

时间:2019-04-10 15:28:12

标签: oracle-apex oracle-apex-5.1

我有一个交互式网格,上面定义了自定义操作。我想做的是遍历网格,获取所有选定的记录,然后遍历记录并为每个记录更新单个数据库字段,将其设置为0。

我正在使用以下代码遍历记录,获取记录ID:

view=apex.region("myGrid").widget().interactiveGrid("getViews","grid");

if (view.supports.edit)
{
    model=view.model;
    records=view.getSelectedRecords();
    if(records.length>0)
    {
        for(i=0;i< records.length; i++)
       {

            $record_id= model.getValue(records[i], "RECORD_ID");
            //update the database here UPDATE TABLE1 SET Flag=0 WHERE RECORD_ID=$record_id
        }
    }
}

从此处执行更新的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

有点类似的情况。我想检查一下IG,并为每个选定的记录更改一列。我设置了一个在按钮上触发的动态操作,并使其运行以下Javascript,然后在javascript中为提交页面设置了另一个tru操作之后,否则您仍然需要手动保存。这是我的解决方案:

    var g = apex.region('MY_INTERACTIVE_GRID').widget().interactiveGrid('getViews','grid');  
    var r = g.getSelectedRecords();  
    for(i = 0; i < r.length; i++) {   
    g.model.setValue(r[i], 'MY_COLLUMN', 'VALUE_I_WANT');
}

希望这会有所帮助,我发现很多解决方案都不适用于我,这个解决方案有效(Im on 18.2)