I need a way to get all rendered rows in a treepanel
, but I was not able to find how to achieve it.
I tried the following events:
treepanel#render
:panel.getNodes()
is empty, because the rows get rendered after the panel.treeview#refresh
: it gets called later, andview.up('panel').getNodes()
successfully returns the rows
But this does not take into account the rows added later by expanding the nodes.
treeview#cellclick
: this could almost work together withtreeview#refresh
, but it does not account for programmatically.expand()
a nodetreepanel#itemexpand
: gives access to the expanded node and the rowHTMLElement
, but what I need are the children that are rendered
I also tried the renderer
in
xtype: 'treepanel',
columns: {
xtype: 'treecolumn',
renderer: function (...)
This is the best candidate in that it is called exactly once for each rendered row, but the problem is that it is called before the row is rendered, so there is no way to get a reference to the rendered row from it.
The same problem applies to gridpanel
, but there things are even more complicated. Among other problems, I was not able to find an event that triggers when a bufferedRenderer
renders new pages of the store.