2010-07-08 4 views
3

Comment rendre un jqGrid entier désactivé/en lecture seule?Comment rendre un jqGrid entier désactivé/en lecture seule

J'ai une page avec une section « modifier » logique que je montre lorsque l'utilisateur sélectionne quelque chose à modifier, et se cacher lorsque l'utilisateur effectue la modification (enregistrer ou annuler). Pendant que la section d'édition est affichée, je désactive plusieurs autres éléments sur la page. Je voudrais désactiver leur capacité à cliquer dans le jqGrid, afin qu'ils ne puissent pas changer les lignes sélectionnées, re-trier, etc. Mais je ne peux pas trouver un moyen de désactiver/activer la grille dans son ensemble.

Toutes mes excuses si cela a été déjà répondu - questions semblaient se concentrer sur la désactivation que certains comportements au sein du jqGrid.

Éditer: De préférence, je voudrais une approche qui ne dépend pas d'un autre addon tiers. Rien de mal avec eux, bien sûr! Mais mon client a un certain degré de réticence avec eux, donc ma vie serait un peu plus facile avec une solution purement jQuery/jQueryUI/jqGrid. :)

Répondre

5

Vous pouvez utiliser blockUI pour bloquer la grille.

+0

+1, c'est exactement ce que fait ma demande lorsqu'une « Edit », bien que dans ce cas, une boîte de dialogue jQuery UI est affiché. –

+0

Merci - cet addon semble utile. Mon client est parfois réticent à extraire du code tiers supplémentaire - en particulier lorsqu'une politique de licence n'est pas clairement définie, comme c'est le cas avec blockUI. Je vais garder cette addon « dans ma poche arrière » comme solution possible, mais je suis toujours un espoir que quelqu'un peut me pointer vers une solution similaire sans dépendance à l'égard d'une autre bibliothèque 3ème partie. – mikemanne

+0

mikemanne le plugin, comme tout plugin disponible sur jquery.com, est double licence (MIT/GPL). Malsup confirmera ceci par email ou twitter. Sinon, pourquoi ne pas simplement répliquer la fonctionnalité. C'est juste un simple div opaque sur un élément. – redsquare

1

Essayez d'utiliser $("#lui_" + myGridId).show().

La grille a créé cette superposition à l'intérieur d'un l'utilise comme une partie du message de chargement. Vous pouvez simplement l'afficher ou le masquer et il va désactiver/activer la grille pour vous.

Questions connexes