0

I have created a 3 level infragistics igHierarchicalGrid which looks like this:

enter image description here

I want to select the the third row with ProductNumber programmatically. I am able to do this till the second level(Pizza) but i am unable to achieve the same thing for the third level entries.

Below is my code for selecting pizza

var parentGrid = grid.igHierarchicalGrid("rootWidget");
var row = parentGrid.rowAt(0);
grid.igHierarchicalGrid("expand", row);   
var subGrids = grid.igHierarchicalGrid("allChildren");
$(subGrids).each(function(index, subGrid) {
    $(subGrid).igGridSelection("selectRow", 0);
});

grid.igHierarchicalGrid("allChildren") returns all the children of currently expanded rows but it returns them as grid elements while my problem is that those elements are also HierarchicalGrids which i want to expand and select the children from.

Hassam
  • 79
  • 1
  • 12

1 Answers1

2

igHierarchicalGrid instance is only on the root grid. With the root grid API you can expand/collapse rows of the children's too. Here is how to select the 3-rd level row:

var grid = $("#grid1");
var parentGrid = grid.igHierarchicalGrid("rootWidget");
var row = parentGrid.rowAt(0);
grid.igHierarchicalGrid("expand", row, function () {
    var subGrids = grid.igHierarchicalGrid("allChildren"), currentGrid;
    if (subGrids && subGrids[0]) {
        currentGrid = $(subGrids[0]); 
        grid.igHierarchicalGrid("expand", currentGrid.igGrid("rowAt", 0), function () {
            var subGrids = grid.igHierarchicalGrid("allChildren");
            if (subGrids && subGrids[1]) {
                $(subGrids[1]).igGridSelection("selectRow", 0);
            }
        });
    }
});

Keep in mind that igHierarchicalGrid.expand is async API and it's best to use the 3rd callback parameter to execute your logic after the expand is done.

Martin Pavlov
  • 462
  • 3
  • 10