32 votes

jqGrid barre de défilement horizontale

J'ai développé une interface AJAX avec jQuery et jqGrid.

Comment je peux supprimer la barre de défilement horizontal de mon jqGrid table?

http://dskarataev.ru/jqgrid.png

Si j'ai mis en autowidth: true,, puis-je obtenir la largeur de la table = somme de la largeur des colonnes, mais j'ai besoin de la largeur de la table = largeur de l'élément parent avec l'id retourné par la fonction getSelectedTabHref()

je fais donc de la fonction:

$(window).bind('resize', function() {
  $('#tasks').setGridWidth($(getSelectedTabHref()).width());
  $('#tasks').setGridHeight($(window).height()-190);
}).trigger('resize');

et voici comment j'ai créer jqGrid table:

$('#tasks').jqGrid({
  datatype: 'local',
  colNames:[labels['tasksNum'],labels['tasksAdded']+"/"+labels['tasksAccepted'],labels['tasksOperator'],labels['tasksClient'],labels['tasksManager'],labels['tasksDesc']],
  colModel :[
    {name:'taskId', index:'taskId', width:1, align:'right'},
    {name:'taskAdded', index:'taskAdded', width:3},
    {name:'taskOperator', index:'taskOperator', width:4},
    {name:'taskClient', index:'taskClient', width:7},
    {name:'taskManager', index:'taskManager', width:4},
    {name:'taskDesc', index:'taskDesc', width:8}]
});

76voto

j'ai modifié l'interface utilisateur.de la grille.css parce que je n'ai pas besoin d'une barre de défilement horizontale à tous. j'ai fait cela:

.ui-jqgrid .ui-jqgrid-bdiv {
  position: relative; 
  margin: 0em; 
  padding:0; 
  /*overflow: auto;*/ 
  overflow-x:hidden; 
  overflow-y:auto; 
  text-align:left;
}

le commentaire était de savoir comment c'était, j'ai juste utilisé overflow-x pour masquer la barre de défilement horizontale et maintenant, tout est très bien avec moi.

5voto

Oleg Points 136406

Il y a certaines situations où jqGrid calculer la largeur de la grille incorrect. Vous pouvez essayer d'augmenter le cellLayout paramètre (voir http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options). Cela peut être nécessaire si vous changez un peu de CSS à partir de jqGrid.

Dans certaines autres situations, vous pouvez corriger la largeur à l'égard de la fonction fixGridWidth ou fixGridSize que j'ai décrite dans Correctement appelant setGridWidth sur un jqGrid à l'intérieur d'un jQueryUI Dialogue. N'oubliez pas que vous devez l'utiliser à l'intérieur de l' loadComplete.

4voto

arviman Points 1663

Définir explicitement width sur la grille et utiliser

autowidth: false,
shrinkToFit: true

1voto

prem Points 415

setGridWidth sera certainement redimensionner votre grille pour que les nouveaux largeur, mais assurez-vous que vous l'utilisez avec autowidth=true. setGridWidth peuvent avoir un problème avec IE 7 ou plus.

Certaines solutions présentées ici (dans le cas où si vous êtes encore à trouver une solution),

http://stackoverflow.com/questions/875225/resize-jqgrid-when-browser-is-resized

http://www.trirand.com/blog/?page_id=393/discussion/browser-resize-how-to-resize-jqgrid/

----vieux----

Il ya quelques options que vous pouvez essayer,

À partir de http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options

"autowidth" : true    

ou

"shrinkToFit": false

Publier vos jqgrid code, laissez-nous analyser.

1voto

agustinrc89 Points 191

un peu tard, mais peut être utile pour quelqu'un

Vous devez définir la hauteur de la table seulement en nombre, sans " px " à la fin

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X