Je cette jqGrid:jqGrid réactive convertit les icônes d'action à un bouton, mais pas d'informations pagination
$(document).ready(function() {
$.jgrid.defaults.width = 780;
$.jgrid.defaults.responsive = true;
$.jgrid.defaults.styleUI = 'Bootstrap';
$.jgrid.styleUI.Bootstrap.base.rowTable = "table table-bordered table-striped";
$("#gridUsuario").jqGrid({
url: '@Url.Action("GetUsers", "Account", new { area = "Security" })',
mtype: "GET",
datatype: "json",
colModel: [
{ label: 'ID', name: 'ID', key: true, width: 70 },
{ label: 'Vigente', name: 'UsuarioVigente', hidden: true },
{ label: 'Nombre Completo', name: 'FullName', width: 200, edittype: 'text', editable: true, editrules: { required: true }, editoptions: { size: 50, maxlength: 100 }, formoptions: { elmprefix: '(*)' } },
{ label: 'Login', name: 'UserName', width: 120, edittype: 'text', editable: true, editrules: { required: true }, editoptions: { size: 30, maxlength: 50 }, formoptions: { elmprefix: '(*)' } },
{ label: 'Password', name: 'Password', width: 100, edittype: 'password', editable: true, hidden: true, editrules: { required: true, edithidden: true }, editoptions: { size: 30, maxlength: 50 }, formoptions: { elmprefix: '(*)' } },
{ label: 'E-mail', name: 'Email', width: 240, edittype: 'text', editable: true, editrules: { required: true, email: true }, editoptions: { size: 50, maxlength: 100 }, formoptions: { elmprefix: '(*)' } },
{ label: 'Teléfono', name: 'PhoneNumber', width: 120, edittype: 'text', editable: true, editoptions: { size: 30, maxlength: 50 } },
{ label: 'Ciudad', name: 'Hometown', width: 150, edittype: 'text', editable: true, editoptions: { size: 30, maxlength: 50 } },
{ label: 'Fecha Registro', name: 'UsuarioCreadoEn', width: 120, formatter: "date", formatoptions: { srcformat: "ISO8601Long", newformat: "d/m/Y H:i" } }
],
viewrecords: true,
shrinkToFit: false,
autowidth: true,
multiselect: true,
rowNum: 20,
rowList: [10, 20, 30],
gridview: true,
pager: "#gridPager",
sortname: "FullName",
sortorder: "asc",
beforeRequest: function() {
var $PANEL = $('#pnlGrid'),
$FOOTER = $('footer');
// 125 = otros altos, como paddings y la fila de paginación
$("#gridUsuario").jqGrid('setGridHeight', $FOOTER.offset().top - $PANEL.offset().top - 125);
},
rowattr: function (rd) {
if (!rd.UsuarioVigente) {
return { "class": "no-vigente" };
}
}
});
Tout fonctionne un comportement parfait, mais réactif.
Dans la barre d'outils inférieure, j'ai plusieurs actions créées avec la méthode navButtonAdd.
Lorsque je teste la réactivité, les icônes d'action de la barre d'outils inférieure sont remplacées par un bouton avec le libellé "Actions ...". Lorsque vous cliquez dessus, tous les éléments d'action apparaissent. C'est parfait, cependant, la pagination ne se comporte pas de la même façon, ce qui fait apparaître des icônes de pagination sur le bouton "Actions ...".
Est-ce un bug dans JQGRID? est-il un moyen de résoudre cela?
Il semble que commerciales ** ** [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334) a encore des boutons non-enveloppants dans la barre d'outils du navigateur. Alternative fork [free jqGrid] (https://github.com/free-jqgrid/jqGrid) a la fonction (voir [l'article wiki] (https://github.com/free-jqgrid/jqGrid/wiki/Redesign- de-la-structure-de-Navigateur-Barre-des-pagers)). Je vous recommande d'essayer gratuitement jqGrid, qui supporte aussi Bootstrap (voir [ici] (https://free-jqgrid.github.io/getting-started/index.html#bootstrap)). Vous aurez besoin de faire des changements minimes d'options comme l'utilisation de 'guiStyle:" bootstrap "'. – Oleg
La fonctionnalité réactive est très facile. Regardez [l'ancienne démo] (https://jsfiddle.net/OlegKi/andm1299/26/) qui montre comment cacher automatiquement certaines colonnes sur les petits appareils (voir 'classes:" hidden-xs ", labelClasses:" hidden -xs "option et essayez de redimensionner la grille). [Une autre démo] (https://jsfiddle.net/OlegKi/ejpn9/149/), créée pour [le problème] (https://github.com/free-jqgrid/jqGrid/issues/303), montre une fonctionnalité réactive en combinaison avec des colonnes auto-risquantes. – Oleg
D'autres fonctionnalités implémentées dans jqGrid gratuit pourraient être intéressantes pour vous aussi. Voir [la démo] (http://www.ok-soft-gmbh.com/jqGrid/OK/multiPageSelection.htm) par exemple, décrit dans [la réponse] (https://stackoverflow.com/a/33021115/ 315935), montre l'option 'multiPageSelection: true', qui permet de présélectionner des lignes ou de conserver des lignes sélectionnées sur plusieurs pages. – Oleg