filip3134
(Filip3134)
October 3, 2016, 12:39pm
1
Witam,
niedawno w swoich tabelach na filtrach, zacząłem używać takiej biblioteki jak: bootstrap-multiselect
Wszystko działało do czasu aż nie zacząłem używać
enableClickableOptGroups: true,
Problem polegał na tym, że filtr nie reagował na akcję zmiany parametru (zgaduję, że dlatego, że nie ma ‘value’).
Lukę chcę zapełnić czymś takim:
onChange: function(){
jQuery('#wniosek-grid').yiiGridView('update');
}
Problem polega na tym, że odpala się rzekomy update, jednak żaden z filtrów nie zostaje zaaplikowany.
Tutaj moje pytanie jak zasymulować przekazanie parametrów filtra, które wysyłane są jako ‘Query String Parameter’.
rob006
October 3, 2016, 1:00pm
2
Nie powinieneś odświeżać grida, a wywołać submit na formularzu z filtrami.
filip3134
(Filip3134)
October 3, 2016, 1:16pm
3
Zrobiłem, jak napisałeś, ale grid nie reaguje na "nowo dodane" filtry. Tak samo jak w przypadku gdy chciałem tylko odświeżyć grida. Oczywiście dodatkowo przeładowuje stronę niepotrzebnie.
'columns' => array(
array(
'name' => 'userid',
'filter' => CHtml::activeDropDownList($model, 'userid', $allUsersByGroups, array('class'=>'multipleUsersFilter', 'multiple' => 'multiple')
),
...
EDIT:
Problem solved:
onChange: function(){
var vals = {};
var it = 0;
$('.multipleUsersFilter option').each(function(key, value){
if ($(value).context.selected == true){
vals[it] = $(value).val();
it++;
}
});
$.fn.yiiGridView.update('wniosek-grid',{ data: { Wniosek: { userid: vals } } });