mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-01 20:19:42 +08:00
GridView filter now works with Pjax.
This commit is contained in:
@ -50,19 +50,33 @@
|
||||
return;
|
||||
}
|
||||
}
|
||||
var data = $(settings.filterSelector).serialize();
|
||||
var url = settings.filterUrl;
|
||||
if (url.indexOf('?') >= 0) {
|
||||
url += '&' + data;
|
||||
} else {
|
||||
url += '?' + data;
|
||||
}
|
||||
window.location.href = url;
|
||||
|
||||
methods.applyFilter.apply($e);
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
applyFilter: function () {
|
||||
var $grid = $(this);
|
||||
var settings = $grid.data('yiiGridView').settings;
|
||||
var data = $(settings.filterSelector).serialize();
|
||||
var url = settings.filterUrl;
|
||||
if (url.indexOf('?') >= 0) {
|
||||
url += '&' + data;
|
||||
} else {
|
||||
url += '?' + data;
|
||||
}
|
||||
|
||||
$grid.find('form.gridview-filter-form').remove();
|
||||
var $form = $('<form action="' + url + '" method="get" class="gridview-filter-form" style="display:none" data-pjax></form>').appendTo($grid);
|
||||
$.each(yii.getQueryParams(url), function (name, value) {
|
||||
$form.append($('<input type="hidden" name="t" value="" />').attr('name', name).val(value));
|
||||
});
|
||||
$form.submit();
|
||||
},
|
||||
|
||||
setSelectionColumn: function (options) {
|
||||
var $grid = $(this);
|
||||
var data = $grid.data('yiiGridView');
|
||||
|
||||
@ -152,6 +152,19 @@ yii = (function ($) {
|
||||
return false;
|
||||
},
|
||||
|
||||
getQueryParams: function (url) {
|
||||
var pos = url.indexOf('?');
|
||||
if (pos < 0) {
|
||||
return {};
|
||||
}
|
||||
var qs = url.substring(pos + 1).split('&');
|
||||
for(var i = 0, result = {}; i < qs.length; i++){
|
||||
qs[i] = qs[i].split('=');
|
||||
result[decodeURIComponent(qs[i][0])] = decodeURIComponent(qs[i][1]);
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
initModule: function (module) {
|
||||
if (module.isActive === undefined || module.isActive) {
|
||||
if ($.isFunction(module.init)) {
|
||||
|
||||
@ -164,7 +164,7 @@ class Pjax extends Widget
|
||||
$view = $this->getView();
|
||||
PjaxAsset::register($view);
|
||||
$js = "jQuery(document).pjax($linkSelector, \"#$id\", $options);";
|
||||
$js .= "jQuery(document).on('submit', $formSelector, function (event) {jQuery.pjax.submit(event, '#$id');});";
|
||||
$js .= "\njQuery(document).on('submit', $formSelector, function (event) {jQuery.pjax.submit(event, '#$id');});";
|
||||
$view->registerJs($js);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user