Forum Stats

  • 3,838,691 Users
  • 2,262,394 Discussions
  • 7,900,734 Comments

Discussions

Scroll modal page to top

James Davies
James Davies Member Posts: 16 Blue Ribbon

We have a modal page which contains a interactive grid that has edit enabled by default. Enabling grid edit by default causes the focus to be placed on the grid so the page opens half way down. There are no page items at the top of the page that we can use to force focus. Is there a way to get the modal page to scroll to the top after we have enabled grid edit?


Thanks James

Best Answer

Answers

  • Hamza Al-abbasi
    Hamza Al-abbasi Member Posts: 596 Gold Trophy

    Which code you have write to enables the edit mode in IG?

  • James Davies
    James Davies Member Posts: 16 Blue Ribbon
    setGridEdit: function (pGridName) {
                // do this after the page loads but before the IG is initialized to catch the initial events
    
    
                var $ = apex.jQuery;
                $(function () {
                    // listen for view change events to find out when grid views are created
                    l_gridname = "#" + pGridName;
                    $(l_gridname).on("interactivegridviewchange", function (event, data) {
                        if (data.view === "grid" && data.created) {
                            // as soon as the grid view is created go into edit mode
                            // but actually need a little delay THINK why is this?
                            setTimeout(function () {
                                var ig$ = apex.region(pGridName).widget();
                                ig$.interactiveGrid("getActions").set("edit", true);
                                // if the user tries to leave edit mode with Escape key return to edit mode
                                var grid$ = ig$.interactiveGrid("getViews").grid.view$;
                                grid$.on("gridmodechange", function (event, ui) {
                                    if (!ui.editMode) {
                                        // just setting the edit mode back to true isn't enough (perhaps it should be).
                                        // there is an issue with the cell not being reactivated
                                        // so simulate a double click to go back into edit mode
                                        setTimeout(function () {
                                            if (grid$.find(".a-GV-cell.is-focused").trigger("dblclick").length === 0) {
                                                // but if no cell is focused (could have left edit mode because of api call)
                                                // just go back into edit mode
                                                ig$.interactiveGrid("getActions").set("edit", true);
                                            }
                                        }, 100);
                                    }
                                });
                            }, 1);
                        }
                    });
                });
            }
    
  • Hamza Al-abbasi
    Hamza Al-abbasi Member Posts: 596 Gold Trophy

    It seems that the edit action do this. Try to set the page scroll top :

    $('html').scrollTop(0);
    
  • James Davies
    James Davies Member Posts: 16 Blue Ribbon
    Answer ✓

    Thanks for you response.

    I managed to get it working using this:


    $('.t-Dialog-bodyWrapperIn').scrollTop(0);