首页 > 解决方案 > 页面提交后将焦点设置到 IG 中先前选择的行

问题描述

这基本上是它的外观:

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

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

在此处输入图像描述

我找到了“.closest(selector)”函数来尝试并尝试它,如下所示:

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

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

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

函数“.getRowId”在“ Selection Change [Interactive Grid] ”函数中,所以我想知道这是否是它不起作用的原因。我是否应该在“On Click”DA 上具有该功能才能使其正常工作?

标签: javascriptoracle-apex

解决方案


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


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

1 - 在“选择更改(交互式网格)”上创建动态操作 在此处输入图像描述

真正的动作是“执行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 - 在“页面加载”上创建动态操作 在此处输入图像描述

真正的动作是“执行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点击“Save22”按钮


推荐阅读