页面提交后将焦点设置为IG中先前选择的行

时间:2018-10-30 09:30:34

标签: javascript oracle-apex

这基本上是它的外观:

每当我在左侧的“交互式网格”上选择一行时,“选择更改[交互式网格]”动态动作都会触发并在右侧的“交互式网格”上加载一些信息。

我可以在上面添加新行,我想在单击“保存”(图片上未显示,但在“复制”按钮上方的位置)后,在页面上触发了动态操作加载并选择左侧交互式网格中先前已聚焦的行。

enter image description here

我找到了“ .closest(selector)”函数来尝试尝试,就像这样:

$(".getRowId").on('click',function()
        {
            var currentRow = $(this).closest('tr');
            alert(currentRow.attr('id'));
        }
                     );

我在页面加载中使用的功能是:

$(document).ready(function()
    {
        $(currentRow(id)).focus();    
    }
                 );

函数“ .getRowId”位于“ 选择更改[交互式网格] ”函数内部,因此我想知道是否这就是为什么它不起作用的原因。我是否应该在“单击时” DA上具有该功能才能正常工作?

1 个答案:

答案 0 :(得分:2)

我不太了解为什么需要提交页面,我会尝试使用默认按钮来保存(插入和更新)交互式网格。此按钮不提交页面,而是保留选择的值。


如果您需要提交页面,我认为您的解决方案将如下所示:

1-在“选择更改(交互式网格)”上创建动态操作 enter image description here

真正的行动是“执行javascript代码”

//set the static id field on your interactive grid and put the value on gridID variable
var gridID = "dept";
var ig$ = apex.region(gridID).widget();
var grid = ig$.interactiveGrid("getViews","grid");
var selectedRecord = grid.getSelectedRecords();
console.log(selectedRecord);
localStorage.setItem('lastSelectedRecord', JSON.stringify(selectedRecord));

2-在“页面加载”上创建动态操作 enter image description here

真正的行动是“执行javascript代码”

//set the static id field on your interactive grid and put the value on gridID variable
var gridID = "dept";
var ig$ = apex.region(gridID).widget();
var grid = ig$.interactiveGrid("getViews","grid");

grid.setSelectedRecords(JSON.parse(localStorage.getItem('lastSelectedRecord')));

在这里https://apex.oracle.com/pls/apex/f?p=150297:35进行测试,点击“保存22”按钮