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.
Thanks Jim for your detailed responses. I will look forward to know what you find out.
But in my scenario the only data change in the table is selection in the second column, operators dropdown(s), the rest of the data is not changed including the 3rd column that needs to be refreshed. The multi selection list displays same data that is displayed in dropdown when in operator is not being selected.
So it is the jsp tags that needs to be read again and rendered accordinlgy. But it will be usefull to know how column will refresh..
For the grid absolutely - smart refreshing will cause the grid to reload, and show any updates to the server-side data source. For the column, though, I'd like to do some research and get ack to you. I have not seen anyone refresh a single column in a grid via SmartRefresh, and I'm not sure how that will work.I'll post again here, after I've had a little time to investigate.
Best,Jim
When I use id for grid or grid column in smartRefreshId what result I should expect? Shouldn't it re-display that component?
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