User Profile & Activity

Suhas T J Member
Posted: December 7, 2011 4:23 AM

Thanks for the hint Surya,

My initial understanding was, when ever i get a row object of a table and when i call ExpandGroupRow() API for that row, it will expand the associated group row.

 

But i came to know that, we can use follwoing API's to get Grouped rows and use ExpandGroupRow() API for this row object.

 

var group = residingTable.GetRowByGroup(levelIndex, groupRowIndex);

group.ExpandGroupRow();

For a 2 level hierarchical, and Group by is applies on 1st level (levelIndex = 0 ), and i want to expand the 2nd group (groupRowIndex = 1), i should use following code

var group = residingTable.GetRowByGroup(0, 1);

group.ExpandGroupRow();

NOTE: residingTable is a RootTable object of the grid.

 

Thanks for the hint:)

Regards,

Suhas T J

Thanks for the replay.

There is a bug in ISWebgrid that has been posted and also accepted by Intersoft. The bug is, when ever a check is enabled for each row, after checking a row if we perform any sort of operations like Group by field or box, the checks are not retained. This issue is present only in hierarchecal grid. So we can replicate this issue only in 2nd level rows onwards.

 

In order to have a work around until Iswebgrid come up with a fix, i have stored the Web grid row information as an xml. When ever a post back happens, i have to do following operations

1. Read the Xml and and based on the information check the rows from client side.

2. If the row was expanded by user, it has to be expanded as well.

3. If the group row is present, i need to maintain the group row as well.

 

In order to resolve the hierarchecal grid scenario i have a method as shown.

function RecursiveCheckRow(xmlData,gridRootTable,isFirstCall) {
  var count = gridRootTable.GetRowsCount();
  for(i=0;i<count;i++) {
     var canBeChecked=false;
     var row = null;
     if(isFirstCall)
        row = gridRootTable.GetRow(i);
     else
        row = gridRootTable.GetChildRow(rowIter);

     // Identify each row and if the row needs to be checked, 
     // Mark it as "can be checked".
     if(canBeChecked) {
        row.Check();
        // If row has child rows, call the same method resursively
        RecursiveCheckRow(xml,row,false);
     }
  }

}

 

In first call i will get the count but in second call onwards i will not get the count. I tried

rowCount = gridRootTable.GetChildRows().length; and it worked but i need to know what all API's i can use from client side to get the row count. Some times, gridRootTable.GetChildRows().length returns 1, even if the row has multiple child rows.

 

Please let me know, if explains what you are looking for?

 

Thanks,

Suhas

All times are GMT -5. The time now is 6:57 AM.
Previous Next