2017-08-31 2 views
0

Comment remplacer les messages d'alerte jqgrid (ajoutés avec succès, supprimés) dans les alertes bootstrap? J'utilise JQGRID 5.2.1. Comme nous utilisons le code suivant dans jqGrid pour les alertesComment utiliser les alertes bootstrap au lieu des alertes jqgrid

if (response.responseText) { 
     alert(response.responseText); 
         } 
+0

Vous devez * contactez le développeur * de commercial [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334), que vous utilisez. Alternatif fork de jqGrid, [free jqGrid] (https://github.com/free-jqgrid/jqGrid), que je développe, permet de définir une fonction personnalisée '$ .jgrid.defaults.fatalError' et jqGrid appelle la fonction * au lieu de * 'alert'. Guriddo jqGrid doit être doté d'une fonctionnalité de fermeture pour être en mesure de répondre à vos besoins. – Oleg

+0

@Aishwarya au lieu d'alerte vous pouvez utiliser la commande qui utilise le modal Bootstrap. [Regardez ici] (https://getbootstrap.com/docs/3.3/javascript/#modals) comment appeler ceci au lieu de alert() –

+0

@Oleg Si je veux utiliser les alertes bootstrap alors ce que je dois faire dans jqgrid gratuit ? Pouvez-vous s'il vous plaît expliquer que je suis nouveau à elle – Aishwarya

Répondre

0

tout d'abord je tiens à rappeler que alert sera utilisé par jqGrid libre très rarement et seulement dans critiques des situations, par exemple, si la grille peut » t être créé du tout. De l'autre côté, on pourrait avoir l'exigence ne pas utiliser alert comme politique commune d'une entreprise et comme exigence commune à tous les modules JavaScript. Cela correspond à la politique de certains navigateurs web (voir the article par exemple).

Un autre exemple d'exigence pour remplacer alert sera la création de tests unitaires, qui reproduisent explicitement certaines erreurs. Il serait utile de tester l'existence d'une erreur seulement sans afficher le blocage alert.

De toute façon jqGrid libre permet de définir la méthode $.jgrid.defaults.fatalError, qui sera utilisé par jqGrid au lieu dealert. Par exemple, on peut utiliser le code comme ci-dessous

$.jgrid.defaults = $.jgrid.defaults || {}; 
$.jgrid.defaults.fatalError = function (errorText) { 
    $("body").prepend('<div class="alert alert-danger alert-dismissable">' + 
     '<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>' + 
     '<h4 class="alert-heading">Error</h4>' + 
     '<p>' + errorText + '</p>' + 
     '</div>').alert() 
     .on('closed.bs.alert', function() { 
      $(this).remove(); 
     })   
}; 

avant de créer une grille.

https://jsfiddle.net/OlegKi/c70pfv6r/ est une grille simple, qui utilise CSS Bootstrap. J'ai inclus $.jgrid.defaults.fatalError dans le code, mais il ne sera pas vraiment utilisé. J'ai modifié la démo pour inclure le paramètre colNames, dont la longueur ne correspond pas à la longueur du paramètre colModel: https://jsfiddle.net/OlegKi/c70pfv6r/1/. jqGrid ne peut pas créer la grille et utilise alert dans de tels cas. Un autre côté on verra la place div suivante:

enter image description here

0

Je pense qu'il ya un moyen de faire beaucoup easer cela. En cas de Guriddo jqGrid tel que déclaré dans la question, il est possible d'utiliser la construction en fonction commune .jgrid.info_dialog de $ comme celui-ci

if (response.responseText) { 
     $.jgrid.info_dialog('My Title', response.responseText, 'Close', { styleUI : 'Bootstrap'}); 

En savoir plus sur les fonctions communes Guriddo jqGrid vous pouvez look here