Refreshing ADF table in JSF

On a button in a JSF page following code is written..The page show a table in read only mode and queries all products..In the button, I try to give a where clause, saying product_id > 103 and reexecute the VO..In the command output (system.out), i get the proper results, but the page still shows ALL the products. How to refresh the page ?
Note: I have set a ID for the button, set its partialsubmit to true, and set this ID as the partial trigger for that table..still no change
public String commandButton_action() {
// Add event code here...
String amDef = "model.AppModule";
String config = "AppModuleLocal";
ApplicationModule am =
Configuration.createRootApplicationModule(amDef, config);
ViewObject vo = am.findViewObject("Products1View1");
vo.setWhereClause(" Product_Id > 103 ");
vo.executeQuery();
while (vo.hasNext()) {
Row row = vo.next();
System.out.println(row.getAttribute("ProductId"));
return null;
Thanks in advance..

Hi,
if you bind your JSF table to a managed bean to populate the data (querying the AM and fetching the rows to show) then use PPR or AdfFaces.getCurrentInstance().addPartialTarget(the_jsf_table_binding)
If you use ADF to populate the table then the approach you have taken is completely wrong and I suggest to read the developer guide
http://download-uk.oracle.com/docs/html/B25947_01/toc.htm
Frank

Similar Messages

  • Refresh adf table and selection row

    Hi,
    I create web application. I have created entity Users from MySQL database and managed Bean. In this managed Bean (sessionScope) is method for connection to database and method for adding new row (data) in database. It works.
    I have 2 problems.
    The first.
    I have form for adding User and commandButton Add.
    How I can refresh (update) adf table after executing SQL command (in commandButton Add) ? Now I must reconnect session.
    The second problem:
    I want to show a panel with data from one row from adf table.
    How I can selection this row in popup ?
    My table:
    <af:table var="user" rowBandingInterval="0" id="t2"
                                                  inlineStyle="margin:20px 30px; width:578pt; height:160pt;"
                                                  value="#{userController.users}"
                                                  rows="15"
                                                  emptyText="#{bindings.UsersprototypView11.viewable ? 'No data to display.' : 'Access Denied.'}"
                                                  fetchSize="#{bindings.UsersprototypView11.rangeSize}"
                                                  editingMode="clickToEdit" rowSelection="single"
                                                  selectedRowKeys="#{userController.selectedUser}"
                                                  selectionListener="#{userController.selectedUser}"> ---- Here I have problem.
                                            <af:column sortProperty="#{user.user_id}"
                                                       sortable="false"
                                                       headerText="ID"                            
                                                       id="c11" width="33">
                                                <af:commandLink id="ot34" text="#{user.user_id}">
                                                    <af:showPopupBehavior popupId="p4" triggerType="action"/>
                                                </af:commandLink>
                                            </af:column>
                                            <af:column sortProperty="#{user.firstname}"
                                                       sortable="false"
                                                       headerText="Firstname"
                                                       id="c20" width="111">
                                                <af:outputText value="#{user.firstname}" id="ot27"/>
                                            </af:column>
                                            <af:column sortProperty="#{user.lastname}"
                                                       sortable="false"
                                                       headerText="Lastname"
                                                       id="c12">
                                                <af:outputText value="#{user.lastname}" id="ot31"/>
                                            </af:column>
                                            <af:column sortProperty="#{user.address}"
                                                       sortable="false"
                                                       headerText="Address"
                                                       id="c9" width="95">
                                                <af:outputText value="#{user.address}" id="ot32"/>
                                            </af:column>
                                            <af:column sortProperty="#{user.city}"
                                                       sortable="false"
                                                       headerText="#City"
                                                       id="c10" width="76">
                                                <af:outputText value="#{user.city}" id="ot33"/>
                                            </af:column>
                                            <af:column sortProperty="#{user.username}"
                                                       sortable="false"
                                                       headerText="Username"
                                                       id="c7" width="102">
                                                <af:outputText value="#{user.username}" id="ot29"/>
                                            </af:column>
                                            <af:column sortProperty="#{user.email}"
                                                       sortable="false"
                                                       headerText="E-mail"
                                                       id="c21" width="106">
                                                <af:outputText value="#{user.email}" id="ot28"/>
                                            </af:column>
                                            <af:column sortProperty="#{user.regdate}"
                                                       sortable="false"
                                                       headerText="Registration"
                                                       id="c8" width="108">
                                                <af:outputText value="#{user.regdate}" id="ot30">
                                                    <af:convertDateTime pattern="#{user.regdate}"/>
                                                </af:outputText>
                                            </af:column>
                                        </af:table>userController is name managed Bean.
    users is list of users.
    My panel window (popup):
    <af:popup childCreation="deferred" autoCancel="disabled" id="p4">
                                        <af:panelWindow id="pw9" title="Delete user">
                                            <af:panelFormLayout id="pfl6">
                                                <af:panelLabelAndMessage label="ID:"
                                                                         id="plam16">
                                                    <af:outputText value="#{userController.selectedUser.user_id}" id="ot50"/>
                                                </af:panelLabelAndMessage>
                                                <af:panelLabelAndMessage label="Firstname:"
                                                                         id="plam17">
                                                    <af:outputText value="#{userController.selectedUser.firstname}" id="ot51"/>
                                                </af:panelLabelAndMessage>
                                                <af:panelLabelAndMessage label="Lastname:"
                                                                         id="plam18">
                                                    <af:outputText value="#{userController.selectedUser.lastname}" id="ot52"/>
                                                </af:panelLabelAndMessage>
                                                <af:panelLabelAndMessage label="Address:"
                                                                         id="plam19">
                                                    <af:outputText value="#{userController.selectedUser.address}" id="ot53"/>
                                                </af:panelLabelAndMessage>
                                                <af:panelLabelAndMessage label="City:" id="plam20">
                                                    <af:outputText value="#{userController.selectedUser.city}" id="ot54"/>
                                                </af:panelLabelAndMessage>
                                                <af:panelLabelAndMessage label="Username:"
                                                                         id="plam21">
                                                    <af:outputText value="#{userController.selectedUser.username}" id="ot55"/>
                                                </af:panelLabelAndMessage>
                                                <af:panelLabelAndMessage label="E-mail:" id="plam22">
                                                    <af:outputText value="#{userController.selectedUser.email}" id="ot56"/>
                                                </af:panelLabelAndMessage>
                                                <af:panelLabelAndMessage label="Registration:"
                                                                         id="plam23">
                                                    <af:outputText value="#{userController.selectedUser.regdate}" id="ot57">
                                                        <af:convertDateTime pattern="#{userController.selectedUser.regdate}"/>
                                                    </af:outputText>
                                                </af:panelLabelAndMessage>
                                            </af:panelFormLayout>
                                            <af:commandButton text="Delete" id="cb18"
                                                              inlineStyle="width:80pt; margin:10px 0px 0px 0px;"/>
                                        </af:panelWindow>
                                    </af:popup>When I cut out row: selectionListener="#{userController.selectedUser}
    Popup (for deleting user) looks like this:
    http://imageshack.us/photo/my-images/404/popupc.jpg/
    I need to get the outputs from <af:outputText> in this popup.
    Thanks for help.
    Edited by: user9202624 on 26.2.2013 7:52

    thanks for answer.
    I added partialTriggers in af:table
    <af:table var="user" rowBandingInterval="0" id="t2"
                                                  inlineStyle="margin:20px 30px; width:578pt; height:160pt;"
                                                  value="#{userController.users}"
                                                  rows="15"
                                                  emptyText="#{bindings.UsersprototypView11.viewable ? 'No data to display.' : 'Access Denied.'}"
                                                  fetchSize="#{bindings.UsersprototypView11.rangeSize}"
                                                  editingMode="clickToEdit" rowSelection="single"
                                                  selectedRowKeys="#{userController.selectedUser}"
                                                  partialTriggers="::t1" >What next ? What should I do next ? Sry, I'm newbie in adf and jDev.
    Edited by: user9202624 on 26.2.2013 8:55

  • How to refresh Adf  table from Adf popup

    Hi all,
    i have and adf query panel with table. On this table for each record, there is a button to perform some operations. When i click this button i am launching an adf popup. Inside this popup i have used a adf dialog of type yes/no. i am using this as a confirmation. (ex- Are you sure you want to change (ex- deactivate) this record?) If yes is clicked i change only one field. Suppose the record belongs to a client. On click of yes, i change the status to some value. ex- deactivate. so with the dialog's button click, i change the table data. but it is not reflected unless i made a query. i want to automatically refresh this table on click of dialog button's yes. I hope i made my self clear. Can this be done with Jdev. Im using Jdev 11.1.1.0.1. Pls help me with this.
    Thanks in advance,
    Nad

    Hi Maxi, Timo, i tried the solutions by both of you. Thanks alot for replying. But i get an error. This is what i did. for Deactivate btn in the table, i have added the below return listerner code.
    public void onReturnFromDialog(ReturnEvent returnEvent) {
    if (returnEvent.getReturnValue() != null) {
    refreshCurrentPage();
    protected void refreshCurrentPage() {
    FacesContext context = FacesContext.getCurrentInstance();
    String currentView = context.getViewRoot().getViewId();
    ViewHandler vh = context.getApplication().getViewHandler();
    UIViewRoot x = vh.createView(context, currentView);
    x.setViewId(currentView);
    context.setViewRoot(x);
    but i noticed that both these methods are not invoked. So i added the below dialoglistener code to the af:dialog that is inside my popup. This popup is shown when the deactivate btn is clicked.
    public void DialogListenAction(DialogEvent dialogEvent) {
    if(dialogEvent.getOutcome().toString().equals("yes"))
    DCIteratorBinding iter = ADFUtils.getIterator("MembersVO3");
    String des = (String) iter.getCurrentRow().getAttribute("MemberCode");
    service.deactivateMember(des); //This is where i update the record and set the attribute value to des
    System.out.println("suspect1");
    RequestContext.getCurrentInstance().returnFromDialog(des,null);
    //AdfFacesContext afContext = AdfFacesContext.getCurrentInstance();
    //afContext.getCurrentInstance().returnFromDialog(des, null);
    System.out.println("suspect2");
    //ifCancel Do nothing
    when i add 'RequestContext.getCurrentInstance().returnFromDialog(des,null);'
    OR
    'AdfFacesContext afContext = AdfFacesContext.getCurrentInstance();
    afContext.getCurrentInstance().returnFromDialog(des, null);'
    i get the error - java.lang.IllegalStateException: popView(): No view has been pushed.
    i cant figure out what is the wrong here. Can some one pls suggest how to resolve this?
    Thanks alot.

  • ADF 11g - Refreshing adf:Table using af:poll and ValueExpressions

    Hi,
    I am trying refresh an ADF Read-only table with the af:poll component.
    I could see the System.out message in console and Browser activity (refreshing) because of af:poll method.
    But, the values are not getting updated until I refresh the page manually and removing the "?_adf.ctrl-state=1228194074_3" part from the Browser URL.
    Please find the code which I am using:
    System.out.println("Updating table");
    FacesContext fctx = FacesContext.getCurrentInstance();
    *ValueBinding dcb = fctx.getApplication().createValueBinding("#{bindings}");*
    DCBindingContainer bindings = (DCBindingContainer)dcb.getValue(fctx);
    DCIteratorBinding dciter =bindings.findIteratorBinding("DepartmentsIterator");
    Key current_row_key = dciter.getCurrentRow().getKey();
    dciter.executeQuery();
    dciter.setCurrentRowWithKey(current_row_key.toStringFormat(true));
    Also, I could see createValueBinding / ValueBinding is deprecated and replaced by ValueExpression.
    Is this causing any issues or is there any working sample of the same in ADF 11g.
    thanks & regards,
    S.Vasanth Kumar.
    JDev Studio Edition Version 11.1.1.0.1
    Build JDEVADF_MAIN.BOXER_GENERIC_081203.1854.5188
    Edited by: vasanth.s.kumar on May 6, 2009 10:06 PM

    Thank you for the help.
    But, I am getting NullPointerException after implementing the following code.
    RequestContext.getCurrentInstance().addPartialTarget(this.getTable1());
    RequestContext.getCurrentInstance().addPartialTarget(this.getTable2());
    +"java.lang.NullPointerException+
    +For more information, please see the server's error log for+
    +an entry beginning with: Server Exception during PPR, #4"+
    Please find the complete stack trace attached.
    Inside EmployeesBean
    Updating table
    May 6, 2009 10:34:05 PM oracle.adfinternal.view.faces.config.rich.RegistrationConfigurator handleError
    SEVERE: Server Exception during PPR, #1
    javax.el.ELException: java.lang.NullPointerException
         at com.sun.el.parser.AstValue.invoke(AstValue.java:161)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1264)
         at org.apache.myfaces.trinidad.component.UIXPoll.broadcast(UIXPoll.java:98)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:458)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:763)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:640)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:275)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:175)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:181)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:279)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:239)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:196)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:139)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:102)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:65)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:149)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(Unknown Source)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.NullPointerException
         at org.apache.myfaces.trinidadinternal.context.RequestContextImpl._getNearestPPRTarget(RequestContextImpl.java:770)
         at org.apache.myfaces.trinidadinternal.context.RequestContextImpl.addPartialTarget(RequestContextImpl.java:487)
         at nl.whitehorses.coherence.view.backing.EmployeesBean.refreshTable(EmployeesBean.java:105)
         at nl.whitehorses.coherence.view.backing.EmployeesBean.onPoll(EmployeesBean.java:110)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
         ... 38 more
    thanks & regards,
    S.Vasanth Kumar.

  • Issue with the partialTrigger on ADF Table

    Jdeveloper Version 11.1.2.3.0
    I have replicated issue with partialTrigger on the table component. Sample application can be downloaded from here . It needs HR schema to run.
    In below sample pageFragment, I can try refreshing adf table in two ways
    1. Set addEmployee button's id in partialTrigger of ADFTable component.
    2. Set addEmployee button's id in partialTrigger of PanelBox component.
    Note the difference - 1st one doesn't work where as 2nd works fine. Do we have any additional constraints when refreshing ADF table using
    partialTrigger ?
    I replicated the usecase in below example :
    PageFragment Structure -
    PanelBox                         
    |                              
    |__ ADF Table                         
    |                              
    |__toolbar facet                    
    |                              
    |__ addEmployee button                
    PageFragment Code
    <af:panelBox text="PanelBox2" id="pb1">
    <f:facet name="toolbar">
    <af:commandButton actionListener="#{bindings.addEmployee.execute}" text="addEmployee2"
    disabled="#{!bindings.addEmployee.enabled}" id="cb1" partialSubmit="true"/>
    </f:facet>
    <af:table value="#{bindings.EmployeesView1.collectionModel}" var="row" rows="#{bindings.EmployeesView1.rangeSize}"
    emptyText="#{bindings.EmployeesView1.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.EmployeesView1.rangeSize}" rowBandingInterval="0"
    selectedRowKeys="#{bindings.EmployeesView1.collectionModel.selectedRow}"
    selectionListener="#{bindings.EmployeesView1.collectionModel.makeCurrent}" rowSelection="single" id="t1"
    displayRow="selected" partialTriggers="::cb1" styleClass="AFStretchWidth">
    <af:column sortProperty="#{bindings.EmployeesView1.hints.EmployeeId.name}" sortable="false"
    headerText="#{bindings.EmployeesView1.hints.EmployeeId.label}" id="c1">
    <af:inputText value="#{row.bindings.EmployeeId.inputValue}"
    label="#{bindings.EmployeesView1.hints.EmployeeId.label}"
    required="#{bindings.EmployeesView1.hints.EmployeeId.mandatory}"
    columns="#{bindings.EmployeesView1.hints.EmployeeId.displayWidth}"
    maximumLength="#{bindings.EmployeesView1.hints.EmployeeId.precision}"
    shortDesc="#{bindings.EmployeesView1.hints.EmployeeId.tooltip}" id="it1">
    <f:validator binding="#{row.bindings.EmployeeId.validator}"/>
    <af:convertNumber groupingUsed="false" pattern="#{bindings.EmployeesView1.hints.EmployeeId.format}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="#{bindings.EmployeesView1.hints.FirstName.name}" sortable="false"
    headerText="#{bindings.EmployeesView1.hints.FirstName.label}" id="c2">
    <af:inputText value="#{row.bindings.FirstName.inputValue}"
    label="#{bindings.EmployeesView1.hints.FirstName.label}"
    required="#{bindings.EmployeesView1.hints.FirstName.mandatory}"
    columns="#{bindings.EmployeesView1.hints.FirstName.displayWidth}"
    maximumLength="#{bindings.EmployeesView1.hints.FirstName.precision}"
    shortDesc="#{bindings.EmployeesView1.hints.FirstName.tooltip}" id="it2">
    <f:validator binding="#{row.bindings.FirstName.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="#{bindings.EmployeesView1.hints.LastName.name}" sortable="false"
    headerText="#{bindings.EmployeesView1.hints.LastName.label}" id="c3">
    <af:inputText value="#{row.bindings.LastName.inputValue}"
    label="#{bindings.EmployeesView1.hints.LastName.label}"
    required="#{bindings.EmployeesView1.hints.LastName.mandatory}"
    columns="#{bindings.EmployeesView1.hints.LastName.displayWidth}"
    maximumLength="#{bindings.EmployeesView1.hints.LastName.precision}"
    shortDesc="#{bindings.EmployeesView1.hints.LastName.tooltip}" id="it3">
    <f:validator binding="#{row.bindings.LastName.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="#{bindings.EmployeesView1.hints.DepartmentId.name}" sortable="false"
    headerText="#{bindings.EmployeesView1.hints.DepartmentId.label}" id="c11">
    <af:selectOneChoice value="#{row.bindings.DepartmentId.inputValue}" label="#{row.bindings.DepartmentId.label}"
    required="#{bindings.EmployeesView1.hints.DepartmentId.mandatory}"
    shortDesc="#{bindings.EmployeesView1.hints.DepartmentId.tooltip}" id="soc1">
    <f:selectItems value="#{row.bindings.DepartmentId.items}" id="si1"/>
    </af:selectOneChoice>
    </af:column>
    </af:table>
    </af:panelBox>
    Thanks,
    Rajdeep

    Hi Frank,
    Indeed it worked. But I have two queries now :
    1. We are adding employee record using a method called through method action Binding. So shouldn't the bindings be aware of the same .. i mean sychonization of binding layer should happen when method action binding is used ?
    2. Why it works when i apply partialTrigger on panelBox ? Why "employeesViewImpl" code is not required when I apply partialTrigger on panelBox ? Is it a concept that iterator is reexecuted when you refresh parent component ?
    Thanks,
    Rajdeep

  • How to make row selection by checkbox in ADF table

    hello,
    using jdev11g TP4 , fusion web application
    when i drag my view object as ADF table into jsf page,
    i want to know how to make row selection by checkbox
    thanks
    greenApple
    Edited by: greenApple on Nov 10, 2008 11:33 AM

    Hi,
    the tree component has changed compared to 10.1.3. You no longer have a tableSelectmany component that renders as checkboxes. Instead you use the ctrl key and select the table rows
    Frank

  • How to maintain selected row in adf table displayed after refresh

    Hi,
    I am using jdev 11g
    I my jsf page I have a table with multiple rows.
    When i scroll and click on one of the rows its selected but if the page is refreshed the row is always selected but not displayed.
    I need to be able to maintain the selected row after the refresh of the page, so my table will look like its already scrolled to the selected row..
    I tried to use the attribute displayRow="selected" but it won't do the trick.
    Any hints
    Emile

    Hi Branislav,
    Kindly answer the following if you may.
    Is there a way to refresh the table after the selectListner is fired.
    Automatically when i select the table i need to refresh it.
    Why after refresh the selected row changes skin.
    Regards

  • Refreshing only the single row of  ADF Table

    Hi All,
    I have a webcenter application where the ADF Applications has been deployed.Now the Data is coming onto the ADF Tables from a webservice.In that particular table i need to refresh only the single row(whichever selected by the user to edit ) or even a particular field with the updated values as well as need to validate and to create a message box saying about the errors if the validation goes wrong.
    Please suggest!!

    Hi,
    if "updated value" mean that the value got changed on the middle tier (not the browser client) then the update requires the table to be partially refreshed. If the user edits a row and in this row has dependent fields, then this can be achieved by partially refreshing the column. Note that ADF Faces tables don't refresh just one cell
    Frank

  • Scrollbar refresh issue in ADF Table

    Hello, All
    We have an issue regarding the ADF Tables. Please let me know if it is a Oracle bug. All of us know that 'ExecuteQuery' operation refreshes the cache in View Objects.
    But, based on our testing results, there might be a table refresh issue on vertical scrollbars after this opertion is executed.
    Settings:
    In the attached example project, we have a ADF RichTable included in a PanelCollection.
    In addition, We set 'AutoHeightRows' property on this ADF RichTable in order to show scrollbars on the PanelCollection.
    Furthremore, a standard CommandButton is created on the toolbar to execute queries.
    Experimental Steps:
    1. Use your mouse to move the vertical scrollbar to around the center of its range. This behavior causes the scrollbar scrolling vertically.
    2. Click on any row showing in the table right now, make it to be the active row.
    3. Press the 'ExecuteQuery' button, waiting for the table refresh.
    Results:
    1. Active row moves to the first row in the rowset.
    2. Vertical scrollbar stay in the center of its range without moving to the first row.
    3. The first row is hidden from end users. The user can not see the active row in this case.
    FYI:
    The attached project can be accessed from the following link:
    http://www.4shared.com/zip/Xn4Ki0DP/Application3.html
    In this project, we tried to set 'partialTriggers' on RichTable and its surrounding PanelCollection separately. But, the refreshing issue still exists.
    Regards,
    David He

    Welcome David to forums.
    Always mention your exact Jdev version. For more information read this: https://forums.oracle.com/forums/ann.jspa?annID=56
    I too faced the similar kind of issue in one of my application.
    As you have not mentioned the exact jdev version, I will tell you what I did in my application which was developed using Jdev 11.1.2.0
    After the VO is executed, you can write the below line of code to show the first rows in the table.
    applicationsRichTable.setDisplayRow(applicationsRichTable.DISPLAY_ROW_FIRST);
    //applicationRichTable is the binding for the RichTable in managed beanHope it helps.

  • ADF table refresh on update of database field in the background

    Hi,
    I have an ADF Read Only table based on Toplink mapping for a database table. In my scenario, one of the columns (Name) gets updated in the background (through DB adapter from ESB.
    The problem is the ADF table does not refresh to reflect the updated name, on navigating to other pages and coming back (basically page reload).
    The updated name does not reflect until I logout of the session.
    I have used the explicit refresh option for the "findALL" method used by the ADF table. I have also tried setting "NoIdentityMap" option in Toplink Identity Map.
    Please let me know how can I get the table refreshed. I'm using JDev 10.1.3.1 with Toplink.
    Rgds
    Vikas

    I have same problem, and I tried af:poll . It only works when I insert a new record or delete a new record. It doesn't work when I update records.
    I followed this example from Frank Nimphius
    http://thepeninsulasedge.com/frank_nimphius/2007/09/18/adf-faces-using-afpoll-to-refresh-a-table/
    Plus the selection action is not work at all. (My case is multiple selection).
    I just want to know is it possible using af:poll conponment to autorefresh ADF table when I update a record ?
    JDeveloper 10.1.3.3
    Message was edited by:
    xpp

  • Temparally remove rows from a ADF table by action event of a jsf page.

    Hello Developers,
    I needed to temporally remove rows of a ADF table when execute action event of corresponding page.
    So in this case my task can describe by following steps,
    (1). I created a ADF table using <af:table> on a jsf page.
    (2). The data populated using a VO.
    (3). Several radio buttons added to the page for temporally remove rows from the table.
    This means one radio button check, it responsible to temporally remove rows which contain empty cell values of a identified column.
    If I check another radio button it should temporally remove identified data included rows but above removed (empty cell included rows) rows should appear in this event
    My ultimate target is temporally remove rows of a table & re call again removed rows another event without again & again query from BC.
    Pleas advice me to archive this task very sealy?
    (Are there have a way to do this using EL or coding in Manage bean ?)
    Thanks in advance..!

    Hi,
    the DCIterator gives you an option to iterate over the fetched rows (the ones you see in the table). You can try call removeAndRetain() on these rows. This will not remove or delete rows but allows you to insert these rows back to the collection.
    JavaDocs:
    * Removes the row from the collection and then retain it for insertion
    * into another location.
    * <p>
    * This method differs from <code>{@link #remove()}</code> in that
    * it just removes the row from the collection. It does not
    * remove the underlying Entity row(s) or database row(s).
    * <p>
    * This method also differs from <code>{@link #removeFromCollection()}</code>
    * in that after the row is removed from the collection, it can be inserted
    * back into the collection at another location.
    void removeAndRetain();
    Frank

  • ADF table refresh

    Hi All,
    <<Jdeveloper Studio Edition Version 11.1.2.3.0>>
    I have a ADF table with EditingMode as "click to edit", so user can edit only one row at a time.
    My requirement is as below
    1. Table should be refreshed every 5 mins
    2. If the user is in the middle of editing a particular row and the table is refreshed, the values entered by the user should not be reset.
    Is there any way of doing this.
    Thanks in advance
    Best Regards,
    bnkr

    DCIteratorBinding iter = bindings.findIteratorBinding("Iterator");
    RowSetIterator rs = iter.getRowSetIterator();
    while (rs.hasNext()){
                   Row r = rs.next();
                   r.refresh(r.REFRESH_WITH_DB_ONLY_IF_UNCHANGED);
    You need to reset your RowSetIterator because this while loop will execute only for first af:pool event.
    Also, it's not good idea to iterate through default RowSetIterator because UI components are bound to this iterator(you can iterate, but then you need to add logic to restore current row...)
    Instead, try something like this:
    RowSetIterator rs = iter.getViewObject().createRowSetIterator(null);
    while (rs.hasNext()){
        Row r = rs.next();
        r.refresh(r.REFRESH_WITH_DB_ONLY_IF_UNCHANGED);
    rs.closeRowSetIterator();
    Dario

  • Focus on next navigatble item in ADF Table after refresh

    Hi,
    How to set the focus in the ADF table to next navigable item after Table Refresh.
    I have valueChangeListner set to one of the columns in the table. Once the Value is changed in the Column we perform calculations based on the value and update the RowIterator.
    To get the updated values I refresh the Table. It shows the updated values correctly.
    After refresh the contorl/focus moves to the Table header.
    Instead We would like to have the focus on the next navigable Item in the Table.
    Or is there a way to change the values in the Table without refreshing by Partial trigger on the Table.
    Thanks,
    Satya

    Hi Arun,
    I did that but it doesn't seems to be working as it need to refresh its own column.
    eg:
    Row COL1 COL2
    R1: Rxxxx Val1
    R2: Lxxxx Val2
    R3: Exxxx Val3
    R4: Fxxxx Val4
    When I modify Val1 Val4 need to be calculated using val1-val3/val2
    I'm doing this in ValueChangeListener. and setting attribute values by finding the correct row using RowsetIterator.
    When I refresh the Table Iterator in Row R4 Val4 is showing the correct values.
    But If I refresh the COL2 it doesn't change the value in row R4
    I have tried by setting IterartorBinding Refresh to always / ifneeded. Tried both declarative and Dynamically. There is no effect.
    Thanks,
    Satya

  • Refreshing an ADF Table After update

    I have an ADF Table which has multiple records. I want the table should refresh after I change some field and press commit.

    Hi,
    Assuming you are using ADF Faces your can double click on the command button and add a backing bean method, in which you call the commit and then also execute (for execute query).
    Let Jdev generate the backing bean code for you and then add the execute binding manually in the page definition and then add it after the commit code in the backing bean.
    Brenden

  • Refresh a ADF Table?

    Hi to all
    I have a adf faces table who take his data from toplink, if i update a row directly on the table via an oracle client, when i refresh the page the old data still be rendered and the table is not refreshed. I mean, the page is refreshed, but the data in the table still being the old data. Then, if the data in the database is altered, how can i refresh my table to show the new data with the needed of close my browser and open it again?
    Thanks in advance!

    Hi! I have a similar problem with table as posted in the following thread:
    Help needed! ADF Data Control: Navigation Buttons + Table  issue.
    As you can see, I've got no response and it's still unsolved.
    Hope you get a better luck!
    Regards,
    Gustavo

Maybe you are looking for