Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
530
smartRefreshIds not working when dropdown from within grid wants grid to refresh
posted

Hi

I have a screen where users build sql queries. For where clause I have a grid and a list box to choose columns from. When user adds a row it gets data column name in first column, a dropdown offering applicable operator in second column and appropariate component, based on column data type and couple of other attribute, in the third/value column. Everything is working fine except in case of 'in' operator.

 When user selects 'in' from the dropdown the value column will get either a multi selection list, or a text field allowing to enter comma separated multiple values. So on the operator drop down I have a value change listener which gets called, but practically I have nothing to do there as I am doing condition in the jsp using rendered attribute.

When I add few rows and select 'in' from operator dropdown the compoenent in the value column doesn't change. But after that selection is made if I add another row the page is redisplayed and the right widgets are displayed in the third/value column. But the expected behaviour is that when user selects the operator it would change the component in the value column.

I have tried to refresh component itself, column and the individual components that can possibley appear in the third column, using their ids in the smartRefreshIds attribute of the operator dropdown, but nothing re-displays that column/cell again.

My question is, does the  smart refresh manager works only on the component that are displaying in the browser? or it actually considers the component in jsp being present.

In this case what really happing is that when user selects 'in' in the operator dropdown it cause the condition in rendered attribute to be false which was true before and true for another component which was false before.

 

 

Parents
  • 2301
    posted

     Hi:

    As I understand it when the rendered attribute is set to false, the server-side renderer simply omits the component from the HTML that is generated for the page. Bacause of this, there's nothing for the smart refresh manager can't operate on teh component because it isn't in the page.

    SmartRefresh, whther you're suing it via teh Javascript function call or the attribute in various components, accepts a comma separated list of components to include in its AJAX-based update. But it can't update components that aren't on the page.

    Hope this helps,
    Jim

Reply Children