Af:table range navigation

Hi, i'm facing a problem...i'm using seperate af:selectRangeChoiceBar for range navigation. But sometimes the rangebar behaves wrongly, like in safari, if i slecet the range from option list, range is changing and suddenly again server trip is happening, and restoring previous range position, means calling "RangeChangeEvent" twice and sometimes by clicking next button , its jumping one range going to the range after that , like 1-10 of 100 then when clicking next going to 31-40 of 100. its happening in IE also...i have seen if i use table default range bar the first error still i'm getting in safari in somesituation. what may be the problem.the possibilities...pls help.
thanks

Turns out, I had forgotten that I had indeed used a rangeChangeListener, and this is in fact related to the bug when a table is displayed in Safari or Chrome, which both use the WebKit rendering engine to display web pages. I've now got a demo project with this stripped down to it's bare essentials. By the way this is ADF Faces on 10.1.3.4, not 11g, though it is possible that the problem is in Trinidad's table component too.
It contains:
A Model project with one read-only ADF BC View Object based on the ALL_OBJECTS dictionary view, and one Application Module referencing the VO. You can use practically any database connection - I'm using SCOTT/TIGER.
A ViewController project with one jspx page, allObjects.jspx, that has an af:table component referencing the above VO. There is a single backing bean for this page which only contains one method - a rangeChangeListener. This simply does System.out.println to show the old and new ranges.
Run the page with Firefox or Internet Explorer, and you will see almost the expected behavior - if I use the drop down range selection control to jump from the first set of rows to a set in the middle, say 91-100, I see:
Range Changed from 0-10 to 90-99.
I say "almost" the expected behavior, because I would have expected to see the starting range from 0-9 - which is what is on the screen with a zero based index.
But if you do the same thing from Safari, you get:
Range Changed from 0-10 to 90-99.
Range Changed from 90-99 to 0-9.
And that is exactly what you see on the screen - it briefly flashes with the selected range - 91-100, then returns to the original range 1-10.
In this example, after the first range change, Safari behaves correctly, but in my actual application my rangeChangeListener manipulates the ranges, so it does it every time. Changing the range with the "Previous" and "Next" links always works correctly.
Change the af:table component so that it doesn't reference the rangeChangeListener, and the page works correctly in all browsers.

Similar Messages

  • How to display table range navigation bar at the bottom of the tr table i

    Hello,
    While I am using trinidad, I have to face a critical issue. Can I display table range navigation bar at the bottom of the <tr table> in Trinidad? and remove the range dropdown list, only show the "previous" and "next" link? The project is critical on the UI, this problem is very small but has to be fixed? Does anyone have any ideas&#65311;

    Difficult to do?  No.
    <ul id="bottom-nav"><li><a hef="whatever.php">whatever</a></li><li class="last"><a hef="whatever2.php">whatever2</a></li></ul>
    With this CSS -
    ul#bottom-nav {
         list-style-type:none;
         overflow:hidden;
         width:70%;
         margin:0 auto;
    ul#bottom-nav li {
         float:left;
         padding-right:10px;
         border-right:1px solid #FFF;
    ul#bottom-nav li.last {
         border:none;
    ul#bottom-nav a {
         /* your styles here */

  • How to move ADF table range navigation towards left?

    Hi All,
    I am using jdev 10.1.3.4. The page I am working is showing a table with many columns. So I need to scroll horizontally to see the table navigation.
    Is there any way to move the table range navigation to the left so that I dont need to scroll?
    Can it be done with using skin selectors?
    Can anyone help me regarding this?
    --Abhijit                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    If you can do it I guess you have to use skinning.
    Check out the skin selectors for af|table [http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/skin-selectors.html#Component-level%20Selectors|http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/skin-selectors.html#Component-level%20Selectors] here
    Frank Nimphius has an old blog entry [http://thepeninsulasedge.com/frank_nimphius/2007/10/02/adf-faces-hidden-skinning-nugget/|http://thepeninsulasedge.com/frank_nimphius/2007/10/02/adf-faces-hidden-skinning-nugget/] which reveals a hidden (or unknown) feature. There may be more...
    Timo

  • Dynamically changing af:table range navigation

    Hi Steve,
    I have a requirement of changing range navigation on another variable "items per page" on the table.
    1. User can select any number of items to be displayed at a time on page from a drop down with values 10,20,30 etc.
    2. I have a valueChangeEvent Bound to this drop down to set the table rows.
    public void itemsPerPageValueChange(ValueChangeEvent valueChangeEvent) {
    // Add event code here...
    if (valueChangeEvent.getNewValue() != null) {
    Integer items = (Integer)valueChangeEvent.getNewValue();
    getTable1().setRows(items);
    This happens fine on the first page i.e. On page display. But say if there are more records then the selected value
    in the dropdown, a table range navigation is displayed as expected. Now if i go to next set of records by "pressing next",
    and select a larger value from "items per page", the list is not displayed as per the selected value. i.e. if there are 16 records
    and i select 20, the display is still displaying the last six records. Only if i click "previous 10" on the table, do i get
    20 records and the range navigation for the table disappears.
    How can i control this?
    1.I mean to always display number of records as selected by the user irrespective of which range of
    records he is seeing.
    2.To display correct value in "previous" and "next" navigation controls depending on value selected by user from dropdown
    Thanks
    sameer

    Hi Steve,
    I have a requirement of changing range navigation on another variable "items per page" on the table.
    1. User can select any number of items to be displayed at a time on page from a drop down with values 10,20,30 etc.
    2. I have a valueChangeEvent Bound to this drop down to set the table rows.
    public void itemsPerPageValueChange(ValueChangeEvent valueChangeEvent) {
    // Add event code here...
    if (valueChangeEvent.getNewValue() != null) {
    Integer items = (Integer)valueChangeEvent.getNewValue();
    getTable1().setRows(items);
    This happens fine on the first page i.e. On page display. But say if there are more records then the selected value
    in the dropdown, a table range navigation is displayed as expected. Now if i go to next set of records by "pressing next",
    and select a larger value from "items per page", the list is not displayed as per the selected value. i.e. if there are 16 records
    and i select 20, the display is still displaying the last six records. Only if i click "previous 10" on the table, do i get
    20 records and the range navigation for the table disappears.
    How can i control this?
    1.I mean to always display number of records as selected by the user irrespective of which range of
    records he is seeing.
    2.To display correct value in "previous" and "next" navigation controls depending on value selected by user from dropdown
    Thanks
    sameer

  • Af:table range navigation and select  with rownum

    I'm trying to use af:table to display some data (long list), but the value attribute always returns the entire list. (Basic example)
    I'd like to use the range navigation so the application only select a sublist from the database (using rownum between x and y) and also display the navigation pane with all the pages, but I was only able to get the specific page with no navigation pane.
    Does anyone have a good example on how to use the range navigation with selects/rownum?

    Assuming I have an untitled1.jspx page with an Untitled1.java backing bean and an <af:table> on my page whose whose binding attribute is set to the EL expression #{Untitled1.table} to expose the table UI component in the backing bean, and a rangeChangeListener set to the EL expression #{Untitled1.onRangeChanged}, then with the following backing bean class, I seem to have been able to disable the user's picking the "Show all" option. It still appears in the list, but visually picking it stays on the current range of rows.
    package test.backing;
    import oracle.adf.view.faces.component.core.data.CoreTable;
    import oracle.adf.view.faces.event.RangeChangeEvent;
    public class Untitled1 {
      private CoreTable table;
      public Untitled1() {
      public void onRangeChanged(RangeChangeEvent rangeChangeEvent) {
        int newStart = rangeChangeEvent.getNewStart();
        int newEnd = rangeChangeEvent.getNewEnd();
        if (newEnd - newStart > getTable().getRows()) {
          int oldEnd = rangeChangeEvent.getOldEnd();
          int oldStart = rangeChangeEvent.getOldStart();
          queueRangeChangeEventForTable(newStart, newEnd, oldStart, oldEnd);
      private void queueRangeChangeEventForTable(int oldStart, int oldEnd,
                                                 int newStart, int newEnd) {
        RangeChangeEvent rce =
          new RangeChangeEvent(getTable(), oldStart, oldEnd, newStart, newEnd);
        getTable().queueEvent(rce);
      public void setTable(CoreTable table) {
        this.table = table;
      public CoreTable getTable() {
        return table;
    }

  • ADF faces tables - range navigation table footer

    Hi,
    I have a strage situation using ADF Faces' table, sometimes it displays range navigation on top and bottom of the table and sometimes only on top of the table. Is it possible to show always the range navigation on top and bottom of the table? How? If not, can someone give me an example of using an selectRangeChoiceBar to implement navigation on bottom of the table?
    Thanks in advance.
    Best Regards,
    Giuseppe

    bump

  • Table range navigator location

    Hi all,
    could I place range navigation of af:Table in the beggining or into the middle
    of this table? If so, how exactly. Thanks

    this isn't working. i tried overriding all possible id's i can find in the source.
    when i did a view source of my jsp page, this is a part of the source i see..
    &lt;div style="overflow:auto; width:100.0%; height:85.0%; margin:0.0pt auto;"&gt;&lt;form id="itmTable:_id13" name="itmTable:_id13" style="margin:0px" onkeypress="return _submitOnEnter(event,'itmTable:_id13');" method="POST" action="/fileViewer/faces/fileViewer.jsp"&gt;&lt;div id="{color:#ff0000}itmTable{color}:{color:#ff0000}mytable{color}"&gt;&lt;table cellpadding="0" cellspacing="0" border="0" summary=""&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellpadding="0" cellspacing="0" border="0" width="100%" summary="" class="x2h"&gt;&lt;tr&gt;&lt;td width="100%"&gt;&lt;/td&gt;&lt;td {color:#0000ff}align="right"{color} valign="middle"&gt;&lt;script&gt;function _navSubmit1(formName, event, id, vld, val){return _submitPartialChange(formName,vld,{event:event,source:id,value:val});}&lt;/script&gt;&lt;script&gt;function _navChoiceSubmit1(choice, formName, event, id, vld){if (!_navSubmit1(formName, event, id, vld, choice.options[choice.selectedIndex].value)){choice.selectedIndex = choice._lastValue;}}&lt;/script&gt;&lt;table cellpadding="0" cellspacing="0" border="0" summary="" id="itmTable:mytable-nb"&gt;&lt;tr&gt;&lt;td id="itmTable:mytable-nb-i" valign="middle"&gt;&lt;img src="/fileViewer/adf/images/oracle/tnavpd.gif" width="14" height="14" border="0" alt="Previous functionality disabled"&gt;&lt;/td&gt;&lt;td&gt;&lt;script&gt;t(5,1)&lt;/script&gt;&lt;/td&gt;&lt;td valign="middle" nowrap&gt;&lt;span class="x55"&gt;Previous&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;script&gt;t(5,1)&lt;/script&gt;&lt;/td&gt;&lt;td valign="middle" nowrap&gt;&lt;select title="Select record set" class="x6" onchange="_navChoiceSubmit1(this, 'itmTable:_id13','goto','itmTable:mytable',1)" onfocus="this._lastValue = this.selectedIndex" id="itmTable:mytable-nb__xc_c"&gt;&lt;option value="all"&gt;Show All 100&lt;/option&gt;&lt;option value="1" selected&gt;1-40 of 100&lt;/option&gt;&lt;option value="41"&gt;41-80 of 100&lt;/option&gt;&lt;option value="81"&gt;81-100 of 100&lt;/option&gt;&lt;/select&gt;&lt;label for="itmTable:mytable-nb__xc_c" class="x4e"&gt;Select record set&lt;/label&gt;&lt;script&gt;_setSelectIndexById("itmTable:mytable-nb__xc_c",1)&lt;/script&gt;&lt;/td&gt;&lt;td&gt;&lt;script&gt;t(5,1)&lt;/script&gt;&lt;/td&gt;&lt;td valign="middle" nowrap&gt;&lt;a href="#" onclick="_navSubmit1('itmTable:_id13', 'goto', 'itmTable:mytable',1,'41');return false" class="x54"&gt;Next 40&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;script&gt;t(5,1)&lt;/script&gt;&lt;/td&gt;&lt;td valign="middle"&gt;&lt;a href="#" onclick="_navSubmit1('itmTable:_id13', 'goto', 'itmTable:mytable',1,'41');return false"&gt;&lt;img src="/fileViewer/adf/images/oracle/tnavn.gif" width="14" height="14" border="0" alt="Select to view next set"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;table class="x2f" cellpadding="1" cellspacing="0" border="0" width="100%"&gt;&lt;tr&gt;&lt;th scope="col" class="x36 x68" onclick="return _tableSort('itmTable:_id13',1,'itmTable:mytable','col2');"&gt;
    'itmTable' is the id for my subview.
    'mytable' is the id for the adf table
    what i can see from this is the text in blue (ie "right") should be overrided to "left".
    i tried everything possible in the world but no success.
    Edited by: khan379 on Oct 14, 2008 5:15 PM

  • Trinidad Table range navigation problem

    Hi,
    I'm using Trinidad components, I try to display a table with range navigation but the range navigation don't work, the first range is always displayed. Must I implement some business myself?
    Here is my jspx code:
    <tr:table value="#{jobScheduler.userJobsTable}"
    var="row"
    emptyText="No rows"
    rowBandingInterval="1"
    rows="3">
    <tr:column headerText="N°">
    <tr:outputText value="#{row.job}"/>
    </tr:column>
    </tr:table>
    The userJobsTable property is a java.Util.List.
    I know that there is a param first in the table tags, but I don't know, which value I must set to it, ...
    Thanks in advance.
    Mike

    Hi,
    Trinidad question should be posted to the Trinidad mailing lists on MyFaces at Apache.org
    Frank

  • ADF Faces: Range Navigation in af:table

    I shortly migrated my application to ADF Faces EA13.
    Now when I use range navigation in a <af:table> there appeares an option in the dropdown list, that was not there in EA11: "Show All <number of rows in the table>".
    Is there a possibility to disable this new feature? I don't want the user to select "Show All" when there are thousands of rows in the corresponding database table.
    Regards,
    Mareike

    We are working on skinning APIs to allow customization of the look-and-feel of our components.
    As for customization of individual features like this, there's always a tension between simplicity and complexity - more hooks to tweak behavior does improve flexibility in the here-and-now, but it increases complexity, makes testing the components that much harder, and also locks in API decisions that often in the long run actually decreases flexibility. I'm not saying "no" to this request, which is reasonable, just trying to give you some insight into why we don't just by default make every last thing modifiable up front.

  • How to add range navigation to an ADF table ?

    Greetings,
    I have the following code:
    <af:table var="messageObject" rowBandingInterval="0" id="t1"
    value="#{chatForm.chatRoom.messages}" rendered="#{chatForm.chatRoom.messagesSize > 0}"
    summary="message table" rows="5" first="#{chatForm.first}"
    contentDelivery="immediate" autoHeightRows="5">
    I expect that once that the number of rows in the table is greater than 5 then the range navigation controls be displayed. But this doesn't happen, the table gets simply truncated displaying the last 5 rows and the other ones aren't available. What I'm doing wrong ?
    Many thanks in advance for your help.
    Kind regards,
    Nicolas

    Timo, here is what the documentation says:
    "Range Navigation
    When the list being displayed by a Table is huge, you can enable the Table to break up the list into ranges and display a single range at a time. Range controls are provided on the Table to let the user scroll to the next range, or to go back to the previous range. If the total size of the list is known, a control to let the user jump directly to a particular part of the list is also provided on the Table. Use the Table attributes "rows" and "first" to control the range navigation feature. When the user changes the range, the T able fires a RangeChangeEvent . "
    So, it apears that, as a matter of fact, there are next and prev buttons when the list is larger than that the table. Additionally, there is no any scrollbar slider as soon as the list gets bigger than the table. Last but not least, the JDeveloper's Component Palette doesn't expose any othe table type than ADF Faces one. If by "use Trinidad tables" you mean "use manually Trinidad tables", well, I'm afraid that thhis is not acceptable for a Java IDE aiming to replace NetBeans and Eclipse.
    But thank you, anyway, for your reply.
    Nicolas

  • Issue with ADF table range paging and sorting

    Hello,
    We have a requirement to support pagination in ADF tables. For this, we have made use of Range paging access mode in the view object level. The paging works perfectly fine with this. But we have another requirement of letting the user do a sort on the table (Yes!! The paginated table). The sort should be applied on all rows in the db and the control should return to the first row.
    Applying sort as it is provided by the fwk, sorts the records in the obtained range only. So we have over ridden the Sort listener in Managed bean for this and are able to acheive the sorting of all rows through a AM method call. We are seeing a problem after this. If the sort action is applied to the key attribute then the previous and next range navigation works fine. If the same action is applied to non-key field, then some times (yea!! This is not consistent) the next set is not fetched.
    Here is the code snippet that is called on Next navigation:
    Map<String,Object> pfScope = AdfFacesContext.getCurrentInstance().getPageFlowScope();
    Object objPageNumber = pfScope.get("pageNumber");
    int pageNumber = 0;
    if(null != objPageNumber)
    pageNumber = new Integer(objPageNumber.toString()).intValue();
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    JUCtrlRangeBinding view = (JUCtrlRangeBinding)bindings.getControlBinding("GeDmRequestVO");
    int iRange = getTable().getAutoHeightRows();
    int currentPage = view.getIteratorBinding().getNavigatableRowIterator().getRangeStart()/(iRange + 1);
    System.out.println("Before " + view.getIteratorBinding().getNavigatableRowIterator().getRangeStart());
    System.out.println("Current : " + currentPage);
    System.out.println("Page Number : " + pageNumber);
    System.out.println("Range : " + iRange);
    System.out.println("Value : " + iRange*(currentPage + pageNumber));
    view.getIteratorBinding().getNavigatableRowIterator().scrollRange(iRange*pageNumber);
    System.out.println("After " + view.getIteratorBinding().getNavigatableRowIterator().getRangeStart());
    Although, the new values are not refreshed in the table, the SOPs for before and after print the proper range sizes. And as I mentioned above, the above code works perfectly fine if there is no sort applied or when key attribute is sorted.
    Would appreciate your help on this regard with navigation after non-key attribute sort.
    Thanks,
    Chitra.

    Hi Chitra,
    Can you specify some links to implement RangePaging.....We need to implement pagination.If possible can you share the code or specify the steps how you achieved it.
    Thanks

  • The Complex SQL Table Range

    DEAR ALL
    I MAKE SOME SQL TUNING
    AND FOUND THIS
    Problematic SQL Statement
    9 Table operations found in execution plan exceeding the upper limit of
    the Complex SQL Table Range. Full table scan with table size larger than
    the Problematic SQL Full Table Scan Threshold (8
    Kbytes).(TEMPLATE.VPD_SEC_PRIVILEGES 64,
    TEMPLATE.USERS_GROUPS 2048, HRMS.HRMS_ORG_CHART_VPD 128,
    TEMPLATE.VPD_SEC_PRIVILEGES 64, TEMPLATE.USERS_GROUPS 2048)
    BUT I DON'T UNDERSTAND WHAT THAT MEAN
    CAN ANY ONE EXPLAINE THIS?

    Well if this output is from SQL Navigator then I suggest you ask on an SQL Navigator forum what their output means.
    As for tuning "select * from employees" I can tell you it will do a full table scan and performance cannot be improved for such a statement.
    If you're interested in tuning SQL's using Oracle facilities look at this thread...
    When your query takes too long ...

  • Table range is not working!!

    Hello all,
    I am using the JHeadstart 10.1.3 production (build 91) and JDeveloper 10.1.3
    I have a main group and 2 detail groups (nested) and regions on the main group. I tried to limit the number of rows by the "table rangë", by selecting it and putting the number of rows and its not showing on the page. I am getting the entire rows.
    any comments about it
    thanks
    san

    San,
    Hmm, very strange. Is this the only page where table range is not working? Can you try creating a new project from scratch and see whether it works correctly there?
    Steven Davelaar,
    JHeadstart Team.

  • The problem of table range.....?

    HI ALL~
    I use Jheadstart 9.0.5.1.9 & JSP.
    I set the LayoutStyle==>table and table range size==>30.
    When I navigate page one(1th~30th records),it show correct data in table. but the data in table doesn't correct after I navigate several next page,it not refresh and the data is old~
    How to resolve the problem?
    thank's~

    Spray Lin,
    Hmm, this is strange. Does this also occur in the Oil demo? It should not matter what the table range size is.
    Maybe the old data are still in your browser's cache. Can you try changing the browser settings so that it does not use the cache anymore (temporarily) and deleting everything that is in the cache now? You can also try using a different kind of browser, if you have one.
    Hope this helps,
    Sandra Muller
    JHeadstart Team

  • In the same page: One SyncBO, two tables, and navigation in both, can i?

    Hi, i have a doubt, i´m doing an app, in one screen i want put the data in two different tables depend an attribute... Up here all correct,but the problem is navigation.
    How can do an independent navigation of the two tables?
    Thanks,

    Ok, because I still not see the issue here - you can develop whatever you like, so why should I implement something that does effect a table when I do not want to effect that table..... Anyway, what would you like to do exactly with that button? Perhaps then I understand your problem.
    Still:
    You have one table. There you display the items with field value X. Ok, and when you press a button you want them to be -
    removed from the client?
    Well, to be honest. JSP is stupid. It does not know when you press the button, what values are displayed there. Only when it is a button of a form and the form was informed about the GUID of these items - then you can work with these GUIDs. I think in your case the easiest way it to say: If I press the first button, then please do this and that on all elements that contain an X in the field, and if I press the second button, do something else on all items without an X in the field. So the easiest way is to do the select statement again in the coding.
    Hope this helps to solve the issue.
    Regards,
    Oliver

Maybe you are looking for

  • How can I remove old wireless networks as a choice on my iphone?

    I just picked up a new time capsule and i'm using my old time capsule to backup just one mac, just not wirelessly.  I need the rest of the Macs and Iphones in the house to no longer default to the old time capsule.  How can I delete networks I no lon

  • HT3775 Says above that QT can open .AVI's. Not true for me.

    I can't open AVI files. System Specs: 13" MacBook Pro Late 2009 OSX 10.6.8. Please help!

  • Does mx440-T has capture ability???

    I have mx440-T. I insert 1-to-4 video cable (2(S),2(C) in/out) to 9-pin jack. I plug camcorder to video in composite jack, I install vivo 2.20 and update the nvidia vga driver. I install iuvcr capture program. but when I start the program there is an

  • How to pass dynamic veriables in IBOTS in OBIEE

    Hi Gurus, Good afternoon to everyone. Now i came with new requirement.I have one report which shows monthly statistics dynamically............my client wants to deliver the report and the report should schedule automatically every month first........

  • How to make PAN field as mandatory in vendor master

    Hi, In second screen of xk01one application toolbar named CIN details is there. In CIN details->withholding tax tab PAN filed is there. I want to make this field as mandatory. How can i do that. please please help me.