/** * jqPagination adapter for bsgrid. * * jQuery.bsgrid v1.37 by @Baishui2004 * Copyright 2014 Apache v2 License * https://github.com/baishui2004/jquery.bsgrid */ /** * require common.js, grid.js. * * @author Baishui2004 * @Date August 31, 2014 */ $.fn.bsgrid.getCurPage = function (options) { return $('#' + options.pagingId + ' input').data('current-page'); }; $.fn.bsgrid.refreshPage = function (options) { $.fn.bsgrid.getGridObj(options.gridId).page($.fn.bsgrid.getCurPage(options)); }; $.fn.bsgrid.firstPage = function (options) { $('#' + options.pagingId + ' a.first').click(); }; $.fn.bsgrid.prevPage = function (options) { $('#' + options.pagingId + ' a.previous').click(); }; $.fn.bsgrid.nextPage = function (options) { $('#' + options.pagingId + ' a.next').click(); }; $.fn.bsgrid.lastPage = function (options) { $('#' + options.pagingId + ' a.last').click(); }; $.fn.bsgrid.gotoPage = function (options, goPage) { if (goPage == undefined) { return; } if ($.trim(goPage) == '' || isNaN(goPage)) { if (options.settings.pageIncorrectTurnAlert) { alert($.bsgridLanguage.needInteger); } } else if (parseInt(goPage) < 1 || parseInt(goPage) > options.totalPages) { if (options.settings.pageIncorrectTurnAlert) { alert($.bsgridLanguage.needRange(1, options.totalPages)); } } else { $.fn.bsgrid.getGridObj(options.gridId).page(parseInt(goPage)); } }; $.fn.bsgrid.initPaging = function (options) { var pagingSb = new StringBuilder(); pagingSb.append('
'); $('#' + options.pagingOutTabId + ' td').append(pagingSb.toString()); $('#' + options.pagingId).jqPagination({ current_page: 1, link_string: '#', // max_page: null, // page_string: 'Page {current_page} of {max_page}', /** * The paged callback is called when a valid page request has been made, the page variable simply contains the page requested. */ paged: function (page) { // do something with the page variable $.fn.bsgrid.getGridObj(options.gridId).page(parseInt(page)); } }); }; $.fn.bsgrid.setPagingValues = function (options) { var curPage = options.curPage; var totalRows = options.totalRows; var totalPages = parseInt(totalRows / options.settings.pageSize); totalPages = parseInt((totalRows % options.settings.pageSize == 0) ? totalPages : totalPages + 1); $('#' + options.pagingId).data('jqPagination').options.current_page = curPage; $('#' + options.pagingId).data('jqPagination').options.max_page = totalPages; var page_string = $('#' + options.pagingId).data('jqPagination').options.page_string; page_string = page_string.replace('{current_page}', curPage).replace('{max_page}', totalPages + ''); $('#' + options.pagingId + ' input').data('current-page', curPage).data('max-page', totalPages).val(page_string); $('#' + options.pagingId).data('jqPagination').setLinks(curPage); // page size select if (options.settings.pageSizeSelect) { $('#' + options.pagingId + '_pageSize').remove(); $('#' + options.pagingId).prepend(''); var optionsSb = new StringBuilder(); for (var i = 0; i < options.settings.pageSizeForGrid.length; i++) { var pageVal = options.settings.pageSizeForGrid[i]; optionsSb.append(''); } $('#' + options.pagingId + '_pageSize').html(optionsSb.toString()).val(options.settings.pageSize); // select change event $('#' + options.pagingId + '_pageSize').change(function () { options.settings.pageSize = parseInt($(this).val()); $(this).trigger('blur'); // if change pageSize, then page first if (options.curPage == 1) { $.fn.bsgrid.refreshPage(options); } else { $.fn.bsgrid.gotoPage(options, 1); } }); } };