Anyone who is interested in using multiple relational columns.
If you extend TbRelationalColumn, and override the registerClientScript function and change these 2 lines:
...
if(tr.length && !tr.is(':visible') && {$cache})
{
tr.slideDown();
that.data('status','off');
//return;<-----------------------comment out this return
}else if(tr.length && tr.is(':visible'))
{
tr.slideUp();
that.data('status','off');
tr.find('td').html('');//<------------------- add this line
return;
}
if(tr.length)
{
tr.find('td').html('{$loadingPic}');
if(!tr.is(':visible')){
tr.slideDown();
}
}
else
{
var td = $('<td/>').html('{$loadingPic}').attr({'colspan':$span});
tr = $('<tr/>').prop({'id':'relatedinfo'+rowid}).append(td);
/* we need to maintain zebra styles :) */
var fake = $('<tr class="hide"/>').append($('<td/>').attr({'colspan':$span}));
parent.after(tr);
tr.after(fake);
}
...
Then, all you do it apply a class to the column in the view:
...
array(
'class'=>'bootstrap.widgets.TbRelationalColumnMultiple',
'name' => 'attribute',
'url' => $this->createUrl('controller/action'),
'cssClass' => 'relational-3',//<---------------------------add this
'filter'=>false
),
array(
'class'=>'bootstrap.widgets.TbRelationalColumnMultiple',
'name' => 'attribute2',
'cssClass' => 'relational-4',//<---------------------------add this
'url' => $this->createUrl('controller/action2'),
'filter'=>false
),
...
And there you go, you can now use it on multiple columns. It will redo an ajax hit every time you run it however.
Hope this helps someone.