cancel
Showing results for 
Search instead for 
Did you mean: 

Displaying values in the table

Former Member
0 Kudos

HI Team,

I am trying to display 10 rows, with 3 cols in a table.

but it is displaying only last row.

this is the code is wrote.

for(int i=1;i<=10;i++)

{

wdContext.nodeEmpDetails().invalidate();

wdContext.nodeEmpDetails().currentEmpDetailsElement().setEmpId(500+i);

wdContext.nodeEmpDetails().currentEmpDetailsElement().setEmpName("Emp Name :"+i);

wdContext.nodeEmpDetails().currentEmpDetailsElement().setSalary(10000+i);

wdComponentAPI.getComponent().getMessageManager().reportSuccess(" Value..."+ i );

}

And bounded this node attributes to table cols.

when i print them i am getting all the values.

But the table is displaying only last row.

cardinality is 1--n

selction is 0-1

How can display all 10 rows in table

Regards,

Naresh

Accepted Solutions (1)

Accepted Solutions (1)

former_member197348
Active Contributor
0 Kudos

Hi Naresh,

Put this wdContext.nodeEmpDetails().invalidate();

before loop.

invalidate() method clears the data in the value node,

if you put this statement in the loop each time in the loop the previous data is being cleared so you are able to see only final iteration data.

regards,

Siva

Former Member
0 Kudos

I changed it, but still it is displaying only last row.

like this....

510 Emp Name :10 10,010

Is cardinality is correct ?

Regards,

Naresh

Answers (4)

Answers (4)

former_member201361
Active Contributor
0 Kudos

hi,

use this code.

for(int i=0;i<10;i++){

IEmpDetailsElement inventor = wdContext.createEmpDetailsElement();

inventor.setEmpId(500+i);

inventor.setEmployeeName("Name"+i);

inventor.setSalary(10000+i);

wdContext.nodeInventor().addElement(inventor);

}

u have import the IprivateEmpDetailsElement.

For Import press ctrlshiftO;

or right click >source>Organize imports

thanks and regards

fazal

Edited by: fazal ahamed on Apr 9, 2008 4:29 PM

Former Member
0 Kudos

Hi Naresh,

To explain further,

You are actually manipulating the same element of Node EmpDetails. To create 10 records you have to create 10 elements for the node. Then for each of the element set the respective values. Also for this code make node cardinality as 0..n otherwise instead of 10 records, you will see 11 records with first record having no value.

Regards,

Gopal

Former Member
0 Kudos

Thank you very much Gopal...

Its resolved. I gave you points

Regards,

Naresh

nikhil_bose
Active Contributor
0 Kudos

wdContext.nodeEmpDetails().invalidate(); will clear all the data in the nodeEmpDetails.

put wdContext.nodeEmpDetails().invalidate() before for loop as to clear the node for the first time and then you can add elements.

you can refer the following code too.


wdContext.nodeEmpDetails().invalidate();
IPrivate<view>View.IEmpDetailsElement element;
for(int i=1;i<=10;i++)
{
element = wdContext.createEmpDetailsElement();
element.setEmpId(500+i);
element.setEmpName("Emp Name :"+i);
element.setSalary(10000+i);

wdContext.nodeEmpDetails().addElement(element);


}

- nikhiL

Former Member
0 Kudos

Hi Naresh,

Instead of

for(int i=1;i<=10;i++)
{
wdContext.nodeEmpDetails().invalidate();
wdContext.nodeEmpDetails().currentEmpDetailsElement().setEmpId(500+i);
wdContext.nodeEmpDetails().currentEmpDetailsElement().setEmpName("Emp Name :"+i);
wdContext.nodeEmpDetails().currentEmpDetailsElement().setSalary(10000+i);

wdComponentAPI.getComponent().getMessageManager().reportSuccess(" Value..."+ i );

}

put following

for(int i=1;i<=10;i++)
{
wdContext.nodeEmpDetails().addElement(wdContext.nodeEmpDetails().createEmpDetailsElement());
wdContext.nodeEmpDetails().moveLast();
wdContext.nodeEmpDetails().currentEmpDetailsElement().setEmpId(500+i);
wdContext.nodeEmpDetails().currentEmpDetailsElement().setEmpName("Emp Name :"+i);
wdContext.nodeEmpDetails().currentEmpDetailsElement().setSalary(10000+i);

wdComponentAPI.getComponent().getMessageManager().reportSuccess(" Value..."+ i );

}
wdContext.nodeEmpDetails().moveFirst(0);

Regards.

Gopal