Установка фокуса на ранее выбранную строку в IG после отправки страницы - PullRequest
0 голосов
/ 30 октября 2018

Вот как это выглядит:

Всякий раз, когда я выбираю одну из строк в интерактивной сетке слева, динамическое действие «Изменение выделения [Интерактивная сетка]» запускает и загружает некоторую информацию в интерактивную сетку справа.

Я могу добавить в него новые строки, и мне бы хотелось, чтобы после нажатия кнопки «Сохранить» (на рисунке она не показана, но она расположена чуть выше кнопки «Копировать») на странице запускается динамическое действие. Загрузите и выберите строку в левой интерактивной сетке, которая была ранее сфокусирована.

enter image description here

Я нашел функцию ".closest (селектор)", чтобы попытаться ее выполнить, например:

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

Функция, которую я использую при загрузке страницы:

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

Функция ".getRowId" находится внутри функции " Изменение выбора [Интерактивная сетка] ", поэтому мне интересно, вот почему она не работает. Должна ли я иметь эту функцию на DA "On Click", чтобы она работала?

1 Ответ

0 голосов
/ 30 октября 2018

Я не совсем понял, зачем вам отправлять страницу, я бы попробовал использовать кнопку по умолчанию для сохранения (вставки и обновления) интерактивных сеток. Эта кнопка не передает страницу и сохраняет выбранные значения.


Если вам нужно отправить страницу, я думаю, ваше решение будет выглядеть так:

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»

...