2010-03-04 8 views
0

J'ai un JQGrid qui doit faire défiler. Cela fonctionne très bien dans Firefox, mais dans IE6, la grille reste stationnaire tandis que le reste du contenu défile en dessous.Comment faire défiler correctement JQGrid dans IE6?

Ce qui peut être un facteur de complication est que la grille est à l'intérieur des onglets, à l'intérieur d'une boîte de dialogue.

J'ai fait des recherches googled partout, mais je ne peux pas trouver une solution à ce problème, donc je me tourne vers Stackoverflow. Est-ce que quelqu'un ici sait ce qui pourrait causer ce comportement? J'utilise jqgrid 3.5.3, devrait-il importer?

+0

Cela sans doute dû à votre conteneur/onglets/boîte de dialogue, si vous mettez à jour cette information et le balisage, ça aide. –

Répondre

1

J'ai eu ce même problème avec IE6. il m'a fallu du temps pour le réparer mais voici ma solution, j'espère que ça marche pour les autres.

Vous devez ajouter 2 éléments à votre section pager sur le JQGrid où vous définissez les attributs add, edit, delete etc.

  1. défilement: 1 - Ceci indique la boîte de dialogue pour faire défiler
  2. afterShowForm: function (formulaire) {form.css ("hauteur", "300px"); } - Cela corrige un problème de dessin avec IE6 qui force à nouveau le dialogue à défiler.

Vous avez besoin ces deux ensemble si vous voulez la boîte de dialogue pour faire défiler et également supprimer tous les attributs de la hauteur existante de la section aussi. Vous n'avez pas besoin de créer le fichier form.css, au moins je ne l'ai pas fait, ça fonctionne comme ça.

 { add: false, edit: true, del: false, refresh: true, search: true }, //general options 
     { 
     //Options for the Edit Dialog 
      editCaption: 'Edit Data', 
     width: 500, 
     modal: true, 
     scroll: 1, 
     closeAfterEdit: true, 
     onclickSubmit: function(eparams) { 
      var sr = jQuery("#MyGridTbl").getGridParam('selrow'); 
      var currentRow = jQuery("#MyGridTbl").getRowData(sr); 
      return { Id: currentRow.Id }; 
     }, 
     afterShowForm: function(form) { form.css("height", "300px"); } 
    }, 
     { 
     }, 
     { 
     }, 
     {} //Search options 
    ); 
0

Pourquoi intégrer les fonctionnalités d'un navigateur sorti en 2001 (9 ans!) Et qui n'est même plus supporté par ses créateurs? Je sais qu'ils "soutiennent" officiellement IE 6 jusqu'en 2014 mais en raison du manque de support pour les standards web et les nouvelles technologies, je conseillerai aux visiteurs de votre projet de mettre à jour leur système. (parce que, outre le manque de support pour les bonbons Web modernes, c'est juste un navigateur buggy et insécurisé)

+0

Hé, c'est mon conseil aussi, mais ce n'est pas mon appel à faire. Apparemment, il y a un cauchemar logistique impliqué quelque part, et il a juste besoin de travailler dans IE6, peu importe combien ça craint. – mcv

1

J'ai eu un problème similaire. Ma grille était à l'intérieur d'un div. Et cette div avait une barre de défilement verticale. Mon problème était que quand j'ai fait défiler la div la grille est restée statique. Il m'a fallu du temps pour comprendre que c'était le positionnement div qui gâtait la position de la grille. Changé la position de la div à relative et il défile comme il se doit. En tout cas je pensais juste partager car je trouve ce forum très (!) Utile.

Merci, Tomasz

Questions connexes