Forum Stats

  • 3,757,254 Users
  • 2,251,216 Discussions
  • 7,869,779 Comments

Discussions

Oracle ADF table scrolls automatically

I am working on an ADF application. There is a page with table which is scrollable and has multiple rows. Sometimes when scrolled to some rows, it will start scrolling up automatically and slowly, even after mouse is released. Is there any property that needs to be set or can it be prevented using JavaScript?


<af:table summary="#{pageFlowScope.MyPageDetailsBean.header}" value="#{bindings.MyPageEntriesVO1.collectionModel}" var="row" rows="#{bindings.MyPageEntriesVO1.rangeSize}" binding="#{pageFlowScope.MyPageDetailsBean.myPageEntryTable}" emptyText="#{bindings.MyPageEntriesVO1.viewable ? HspMsgs['ADF_MSG_NO_DATA_TO_DISPLAY'] : HspMsgs['ADF_MSG_ACCESS_DENIED']}" width="100%" fetchSize="#{adfFacesContext.outputMode!= 'printable' ? bindings.MyPageEntriesVO1.rangeSize: -1}" rowBandingInterval="0" selectedRowKeys="#{bindings.MyPageEntriesVO1.collectionModel.selectedRow}" selectionListener="#{bindings.MyPageEntriesVO1.collectionModel.makeCurrent}" partialTriggers="::delent" inlineStyle="margin-top:5px;" rowSelection="#{bindings.Status.inputValue != 1 or bindings.AccessLevel.inputValue lt 2 or adfFacesContext.outputMode == 'printable'? 'none' : 'single'}" id="t1" freezeDirection="end" disableColumnReordering="true" columnStretching="column:descol" contentDelivery="immediate">

Tagged:

Answers

  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 37,543 Red Diamond

    User, tell us your exact JDev version, please!

    Just from looking to a table definition we can't see much.

    What other components are on the page? Triggers? Javascript?

    Timo


  • dvohra21
    dvohra21 Member Posts: 14,227 Gold Crown

    Several scroll related settings are available.

    scrollPolicy

    autoHeightRows


    Does table have several rows? In the hundreds?

    Also refer Improving Scrolling Performance in ADF Read-Only Tables with Row Selection Timeout


  • Timo Hahn, dvohra21

    I am using Jdeveloper Studio Edition Version 11.1.1.9.2 Build JDEVADF_11.1.1.9.2ADF-REL132004-PROD-BP_GENERIC_200514.0913.7414

    There are text boxes, dropdowns and associated partialTriggers.

    The table has several hundreds/thousands of rows. Its an editable table. There are options to create a row and save it. There are also partialTriggers with ID of a few cell items outside table, to perform some calculations when cell values change.

    JavaScript is used to close popups, not related to the table.

    The issue is when user tries to scroll the table and wants to stop at some point, the table scrolls itself slowly upwards.

    I tried to change scrollPolicy and autoHeightRows but no luck.

    Many thanks.

  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 37,543 Red Diamond

    This sounds like a bug I remember reading about somewhere. Check the bug on support or the internal bug DB (you are an employee and should have access to it, I guess).


    Timo


  • ILya Cyclone
    ILya Cyclone Member Posts: 885 Bronze Badge
    edited Jun 16, 2021 9:23AM

    There is such bug in ADF <= 12.2.1.2 when OS scaling is more than 100% (Win 7).

    In ADF 12.2.1.3 table also starts scrolling on its own... ... but soon stops. Quite a funny bugfix, I say. :)

  • Timo Hahn, ILya Cyclone thank you for the hints! There was a closed bug in bugdb. I have created another to ADF team.

  • dvohra21
    dvohra21 Member Posts: 14,227 Gold Crown

    fetchSize is an important attribute, as it affects vertical scrolling.

    Fetch Size

    The table/treeTable and tree components are virtualized. This means that not all the rows that are available for the component on the server are fetched and displayed on the client. The number of rows that are displayed on the client are just enough to fill the viewport. More rows are fetched as the user scrolls the component vertically.

    "fetchSize" is the number of rows requested from the client to the server on each attempt to fill the component. So if the height of the table is small, the fetch size of 25 is sufficient to fill the component. However if the height of the component is large, there might be a need to request the data multiple times from the server. For example, if the height of the table is 600px and height of each row is 18px. You need at least 45 rows to fill the table. With a fetchSize of 25 the table has to make a request to the server 2 times to fill the table. So it is appropriate to set the fetchSize to 50.

    https://docs.oracle.com/middleware/11119/adf/tag-reference-faces/tagdoc/af_table.html

    Set fetchSize to a fixed value instead of an EL based value:

    fetchSize="#{adfFacesContext.outputMode!= 'printable' ? bindings.MyPageEntriesVO1.rangeSize: -1}"

  • dvohra21
    dvohra21 Member Posts: 14,227 Gold Crown

    The reason it starts scrolling up is that new rows get fetched when scrolled to specific rows by user, and the seemingly buggy scroll up is due to the new rows fetched.

    "More rows are fetched as the user scrolls the component vertically."