Интерактивная сетка - model.getRecord (selectedRecords) возвращает ноль в вершине оракула - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь извлечь все выбранные записи из интерактивной сетки в Oracle APEX, написав фрагмент кода ниже.Я также объявил #myStaticIgId в качестве статического идентификатора моего отчета.

        var record, USER_NAME;
        var x = '';

        var l_role = $v("P2_ROLE");
        var l_justification = $v("P2_JUSTIFICATION");
        var l_date = $v("P2_DATE");

        //Identify the particular interactive grid
        var ig$     = apex.region("myStaticIgId").widget();

        //Fetch the model for the interactive grid
        var grid    = ig$.interactiveGrid("getViews","grid");

        //Fetch the model for the interactive grid
        var model   = ig$.interactiveGrid("getViews","grid").model;



        //Fetch selected records
        var selectedRecords = apex.region("myStaticIgId").widget().interactiveGrid("getViews","grid").view$.grid("getSelectedRecords");
         alert(selectedRecords.length);

        //Loop through selected records 
        for (idx=0; idx < selectedRecords.length; idx++) {
            //Get the record
            record = model.getRecord(selectedRecords[idx][0]);

             alert(record);

            //Get the current value for USER_NAME
             USER_NAME  = model.getValue(record,"USER_NAME");
            //  USER_NAME  = 'Abha';

            alert('submit 2');


         }

Оператор оповещения, который я написал для возврата значения записи, возвращает мне значение NULL.

Подскажите, пожалуйста, что нужно сделать, чтобы получить правильное значение записи в переменной записи.

С уважением, Абха

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Наконец-то я все заработал.проблема заключалась в заказе столбца первичного ключа.Столбец первичного ключа должен быть первым столбцом в списке после «APEX $ ROW_SELECTOR» и «APEX $ ROW_ACTION».

Мой столбец «ASSIGNMENT_NUMBER» с первичным ключом не был первым столбцом, в то время как столбец «USER_NAME»был первый столбец в регионах.Следовательно, он работал для USER_NAME, а не для "ASSIGNMENT_NUMBER".После изменения порядка этого столбца в качестве первого столбца, он работал.

enter image description here

Надеюсь, это кому-то тоже поможет!

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

Я протестировал ваш код (с некоторыми изменениями) здесь и работает.

1 - Определите идентификатор региона вашей Интерактивной сетки.enter image description here

2 - Перейти в Chrome -> Открыть консоль (нажмите F12) -> Попробуйте этот код:

var gridID = "orders";
var ig$ = apex.region(gridID).widget();
var grid = ig$.interactiveGrid("getViews","grid");
var model   = ig$.interactiveGrid("getViews","grid").model;
var selectedRecords = grid.getSelectedRecords();

for (idx = 0; idx < selectedRecords.length; idx++) {
    record = model.getRecord(selectedRecords[idx][0]);
    console.log(record);
    console.log(model.getValue(record,"USER_NAME"));
}
...