cancel
Showing results for 
Search instead for 
Did you mean: 

Lost Variable: please return to owner.....

Former Member
0 Kudos

Hi,

I am having a problem passing data between jsp pages.

My first JSP page contains a table view (5 lines visible data) which uses the onCellClick event to pass data throught on a second jsp page.

However if I page down in the table and then trigger then onCellClick event (say by clicking on line 7) when I get to the second page the data I see is for line 2 (i.e. as if I had never paged down.

My code for the navigation event and onCellClick is shown below...

I have printed out the value of the method getVisibleFirstRow on the first (calling) jsp and it is updated correctly, but when I print it out on the jsp it is always equal to 1.

Any ideas would be appreciated..

Many Thanks.

public void onMyOnNavigate(Event event) throws PageException {

TableNavigationEvent tne = (TableNavigationEvent) event;

if (myBean != null) {

myBean.setVisibleFirstRow(new Integer(tne.getFirstVisibleRowAfter()).toString());

}

}

public void onMyOnCellClick(Event event) throws PageException {

TableCellClickEvent tcce = (TableCellClickEvent) event;

myBean.setClickedCell(tcce.getVisibleRowIndex(), tcce.getVisibleColIndex());

int realSelectedRow = tcce.getVisibleRowIndex() + Integer.parseInt(myBean.getVisibleFirstRow()) - 1;

int realSelectedColumn = tcce.getVisibleColIndex();

myBean.setClickedCellData(myBean.getModel().getValueAt(realSelectedRow, realSelectedColumn).toString());

display = NEXT;

}

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I also had trouble with this, but got it to work. One thing you should verify is if the method onMyOnNavigate is actually getting called when you navigate. I did it a little differently. I didn't try to keep track of the visible first row in a bean. I went directly to the TableView to get that value. As follows:


TableCellClickEvent tcce = (TableCellClickEvent) event;
TableViewEventData tved = (TableViewEventData) tcce.getModifierData();
TableView tableView = (TableView) this.getComponentByName("table");
int row = tableView.getVisibleFirstRow() + tved.getRow() - 1;

tved.getRow() will give you the selected row. In your example that would be 2. First visible row would be 5. So row will be 7.

Brian

Former Member
0 Kudos

Hi,

Thanks for that.

I couldn't quite get that to work specifically the following.

int row = tableView.getVisibleFirstRow() + tved.getRow() - 1;

But by combining the rest with what I already had it now works perfectly.

Thanks,

paul

Answers (0)