cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with TableView using iterator render_row_start

BiancaR
Explorer
0 Kudos

I am using the iterator method render_row_start for filtering my TableView by setting P_SKIP_ROW = 'X'.

This works fine, when I have little data in my table and all entries could be displayed on 1 page. But when I have more data and the correct rows are on the end of the table, the filter result is displayed in that way, that first page is empty and filtered data are on page 2.

The strange thing is, that also header and filter line are missing on page 2.

We also use the server side filter at the same time. But for testing purposals i also used the

filter = "APPLICATION"

with no effect... same problem.

When using no visibleRowCount also everything works.

Any Idea what is missing?

We are using WebAS 6.20 SP 51.

<htmlb:tableView id = "rfqlist"

design = "ALTERNATING"

visibleRowCount = "15"

iterator = "<%= ob_iterator %>"

table = "<%= ob_model->it_detail %>"

filter = "SERVER"

sort = "SERVER" >

...

Any help would be appreciated!

Accepted Solutions (1)

Accepted Solutions (1)

maximilian_schaufler
Active Contributor
0 Kudos

Hi Bianca,

as far as I know the table iterator only works with the rows of the table that the tableView element "gives" to it - it's not working on the same level so to say.

What you did expect was something like the iterator using the whole table data, and keep running until visibleRowCount was reached.

But that's not the way the iterator works - it just receives up to visibleRowCount rows with table data and gets applied to these.

In order to have your custom filtering that does not just skip rows but "fills" the tableView with the next rows from the table data you could choose one of these two ways:

- Filter the whole table data to only submit the filtered data to the tableView element.

- Or remove the visibleRowCount attribute from the tableView element and set an attribute for your iterator. Let the tableView use all rows without limit, and in your iterator you do the filter-check as you used to, skip rows if you want to and increase a running number everytime you do not skip a row, and when this counter reaches your wanted limit, just skip all rows from then ...

but that would mess up the tableView navigation pretty much, so actually useless (won't delete it though, maybe it gives you some other idea).

Overall, using the iterator to do some filtering just isn't what you want it to be, so you have to find some other place to do the filtering other than the iterator.

Hope this helps (to answer your question or at least give you some ideas).

Max

BiancaR
Explorer
0 Kudos

Hi Maximilian

In the meantime i also realized that. I will search for an other way to do my filtering. Thank you anyway!

Bianca

athavanraja
Active Contributor
0 Kudos

what you could do is set the attribute <b>onFilter</b>

of tableview to generate server event and in the oninputprocessing get the filter value entered by user using CL_HTMLB_MANAGER=>GET_FILTER_ROW_VALUE and do the filtering of the itab based on this value.

Regards

Raja

BiancaR
Explorer
0 Kudos

Thank you Raja,

but I think, there is no elegant way to filter the table when the column I want to filter is a field of the table, but not displayed in the tableview. Now we will do it with 2 itabs: one with all entries and another with the filtered data.

Regards

Bianca

Answers (0)