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.

Similar Messages

  • ADF Faces: How to position define table navigation in custom skin?

    Hi,
    I played a bit with custom skins. I'am just wondering how you can choose the location of the navigation button ( << Previous | 1-10 of 32 | Next >> )
    For example, if I use the oracle skin, it appears both at the top and at the bottom. In an other skin I used, the navigation was only at the top and not at the bottom. I just can't figure out how this is determined in the css stylesheet, or is it simply not possible because the custom skin is derived from the Simple skin?

    Add the following to the css for your skin:
    af|table::control-bar-bottom
    visibility:hidden;
    This will hide the bottom control bar, which contains the navigation at the bottom of the table, from view.
    Regards,
    Ric

  • Adf faces: execute bean method after table is loaded

    Hi,
    How can I execute a method after an adf table is rendered on the page?
    This is what I want to do:
    I have a master/detail:
    - the master part contains a list of materials
    - the details contains a list of customers and volumes depending on the selected material.
    I tried to add totals on the details table:
    - I created an output text in the footer-facet of the colums containing volumes
    - I created a binding of the detail table to a CoreTable.
    - I created a method in a managed bean related to this CoreTable binding, so I can browse to all rows in the table and calculate the sum.
    - I then set the value of the output text to the total calculated in the managed bean.
    the problem is that I don't know how to execute the calculate procedure after the data in the detail table exists.
    What I tried:
    - call the calculate procedure in the setCoreTable method. --> at this point, there is no data in the table and this results in a nullPointerException when the pages is loaded.
    - call the calculate procedure on the valueChangeListener of the material list --> this doesn't work because totals are calculated for the previous details set.
    - I tried to add the call in one of the table listeners but I cannot find a listener that is executed after data is loaded in the table...
    for testing purpose only, I added a button: calculateTotals that calculates the totals. This works correctly.

    Hi,
    if you use page fragments exposed in an ADF region, you have two options I see
    1. Use a method call activity to call the managed bean
    2. Use a hidden UI component that references the setter/getter exposed in a managed bean and just use this as an indication for the page fragment being loaded
    Keragala

  • ADF Faces - Select data from a table row

    Hi! I have to build a Select One table but I'd like to use instead the combination: radio button (to select) command button (to submint), only a command button placed in each row wich make both action with a single click.
    Is it possible? How?
    Thanks!

    Maybe some variant of the below will work for you:
    SELECT *
    FROM  
            SELECT transaction_id
                 , employee_name
                 , customer_number
                 , customer_name
                 , ROW_NUMBER() OVER (PARTITION BY employee_name ORDER BY DBMS_RANDOM.RANDOM) AS rn
            FROM   tbl_transactions
    WHERE rn <= 10
    ;

  • 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

  • Problem in accessing ADF Faces Table portlet in Oracle 10.1.4 portal server

    I created one ADF Faces Portlet ,showing a simple table in 10.1.3.1
    When i do run from Jdevloper it works fine.
    But after registering it as WSRP in oracle portal server 10.1.4 ,when i am adding this portlet in a page ,it is giving javasript error.
    I am not able to figure out problem.
    Any help will be appreciated.
    Thanks in Advance....

    It is giving error in this line.
    addJSL("http://ipaddess/portal/page/portal/TEST/COMPANY/test82?mode=16&_rtarget=36_14157_36_14154_14154&_piref36_14157_36_14154_14154.__ora_type=proxy&_piref36_14157_36_14154_14154.__ora_resource=http%3A%2F%2Fisaha%3A8888%2FListAll3%2Fportletresource%2FC%253A192.168.11.162%253A-ce9ef7a%253A12214125dd4%253A-7ffe%2FS%253A192.168.11.162%253A-ce9ef7a%253A12214125dd4%253A-7ffc%253AE%253A0%253A192.168.11.162%253A-ce9ef7a%253A12214125dd4%253A-7ffd%2Fadf%2FjsLibs%2FCommon10_1_3_2_0.js"
    But instead of http:// if it is http://// It is ok.But is is generated by Portal server.
    Do I need to install any patch.
    Any help will be appreciated.
    Thanks in advance ......

  • 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

  • ADF Faces af:table support java.util.Set

    I was using a java.util.Set in my model classes, as implementation of the Collection interface. And wanted to show the Set using a <af:table> after a while I discoverded that the documentation did not mention support of java.util.Set, only List.
    Now I have to convert my collection to List in the backing beans of my view.
    Is there a better approch than converting every Set in the view using
    new Arraylist(set)?
    And what is the reason of the missing Set support (or General Colelction support)?
    Thank you

    Deepak, I don't think you know what you're writing about.
    No, we do not support java.util.Set in <af:table>. For that matter, neither does <h:dataTable>.
    The "why" of it is that we require indexed access into the table for operations like "Display rows 526-550". java.util.Set does not offer indexed access.
    By the way, one corollary - do not use java.util.LinkedList with tables (ADF Faces or the JSF data table). If the list is small, then it won't be a problem, but with a large list, you'll get brutal performance.

  • How can Filter ADF BC LOV values in ADF Faces UI?

    How can Filter ADF BC LOV values in ADF Faces UI?
    Hi i am bit struggle with filtering LOV values in ADF Faces UI.
    I have table In UI ,that is from ADF BC .Now i am Filtering that table data using Select one choice in same page.That SOC is named Type App:  ,So according to selection of Type in SOC table have to display.This portion is done.But my requirement is ,when i got perticular result table ,i want to add one more row related to that type only,so for that i had take popup and drag datacontrol as a form.In that form first column is Select one choice ,select Items will come from BC table.So here i want to filter those LOV values according selection in Type SOC.Suppose Type SOC contain Type1,Type2 values,then when i am selectin Type1,Type1 related date willl diplay on table,now click on ADD button popup will open and in that Type SOC will Dispaly only Type1 related values not Type 2 type values.Type1,Type2 values come from same Table.
    Here i am asking every one,please do help.

    fyi
    The HR schema I used to build the example application had some modifications in the context of https://tuhra2.samplecode.oracle.com/ .
    So after running "demo/schema/mksample" as documented in "Resetting Sample Schemas" ...
    at http://download.oracle.com/docs/cd/E11882_01/server.112/e10831/installation.htm#I6236
    ... I got "java.sql.SQLSyntaxErrorException: ORA-00904: "EMPLOYEES"."MODIFIED_DATE": invalid identifier ", using the example application in BindVarDefaultsInUIApp-v0.02.zip .
    So, I have updated the example application to match the reset HR schema:
    - see http://www.consideringred.com/files/oracle/2010/BindVarDefaultsInUIApp-v0.03.zip
    - see screencast at http://screencast.com/t/gd6zKn63j
    Because Re: af:table filter date format : task-flow navigation issue to get feedback, I created service request 3-2193340441 using My Oracle Support about (q1) and (q2).
    regards
    Jan

  • How to Redirect to another page Using JavaScript in ADF Faces?

    Hi Guys,
    I have a UI user case that has a af:menu which contains mutiple af:goMenuItem. When user click on the menu, the menu slides down and shows up the af:goMenuItem. As we know, you could define the page destinations in af:goMenuItem to go to another page when user clicked, but af:menu itself cannot be redirected to another page. Well, the user case wants the menu itself could be redirected if user click on it.
    So I am thinking using JavaScript to do this: when the af:menu gets clicked, redirect to another page. BUT, I looked over the ADF Faces Javascript API and was not able to find that piece of code to do this. Any help???
    Another work around for the user case scenario is to use HTML marks + CSS/JavaScript instead of af:menu and af:goMenuItem but this changes the scope of technology although it's not hard to do
    Any other idea to accomplish the user case other than what I could think of ?
    Thanks Guys!
    Jay

    Hi,
    1 - you can have a hidden command item to do the navigation based on a control flow case. In this case, you access the command component from JavaScript create a new ActionEvent and queue it
    2 - JavaScript can use an af:serverListener to call into a server side managed bean method to perform the navigation
    there is no JavaScript API for navigation in ADF Faces because navigation in JavaServer Faces is an event driven framework and we don't support developers fighting the framework.
    Frank

  • 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

  • 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

  • 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

  • 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;
    }

  • 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.

Maybe you are looking for