Question

est-il possible de modifier les valeurs d'un champ d'état dans la colModel dynamique? Disons que nous avons un modèle de col avec un champ comme:

... field ... name: "state",type: "select",
editoptions: {value: "0:state0;1:state1;2:state2;3:state3;4:state4"}

Je reçois un champ de sélection pour mes états avec ces valeurs. Mais je dois décider qui selectfields devrait dynamiquement possible. Si l'état de la ligne actuelle est State0, que State0 et state1 doivent être affichés. Si l'état est state1, l'affichage doit être State0, state1 et état2 et ainsi de suite jusqu'à l'état 4 qui devrait afficher uniquement stae3 et STATE4.

Suis-je en mesure de résoudre cela avec un formatter, ou est-il une autre façon de faire une telle chose.

Pour le rendre plus difficile, permet de dire que les états qui sont affichés sont généralement dependend sur un utilisateur qui est connecté, dans ma demande. D'une certaine manière l'utilisateur ne peut voir State0, état2 et STATE4. Cela peut être encore plus compliqué, parce que la transistion entre STATE3 et STATE4 n'est pas autorisé à l'utilisateur actuel.

, les Etats Néanmoins themself sont soit dynamiquement. Serait-il utile de générer dynamiquement le javascript pour un objet dans ma demande, ce qui représente un état général de classe et d'utiliser cet objet pour générer ma sortie nécessaire dans le formatter? Donc, je peux résumer la logique dans cet objet, comment ma sortie est générée et additionaly je ne reçois que les états que l'utilisateur est en mesure de voir.

Si me faire tuer deux oiseaux avec une pierre.

Après avoir relu je l'espère son clair ce que je veux faire, sinon me dire et je vais vous expliquer avec plus de détails.

Une solution pour le problème de béton, thx à oleg:

    editoptions : {

    value : function(){
        //a function can be called here:
        currentRow=$("#order_items").getGridParam('selrow');
        currentState=$("#order_items").getCell(currentRow,"state");
                    nastyGeneratedThings=function(){
                                     ... do some nasty things with currentState
                                     ... and generate what you want
                                     }
                    return nastyGeneratedThings
    }

J'ai couru des ennuis, parce que la fonction a été appelée une seule fois. Je dois donc mettre l'option recreateForm dans Navgrid.

navGrid("#pager", {
            edit : true,
            add : true,
            del : true
        }, {
            height : 500,
            width : 500,
            // recreate the form every time when edit button is clicked.
            // Default is false.
            recreateForm : true
        }
        });

Après que ma fonction se déclenche chaque fois que je clique sur modifier. Espérons que cela aide quelqu'un d'une certaine façon.

Était-ce utile?

La solution

La propriété value du editoptions peut être non seulement une chaîne, mais aussi une fonction. La fonction peut retourner soit une chaîne du type "0: State0; 1: état1; 2: état2; 3: STATE3; 4: STATE4" ou d'un objet comme {"0":"state0", "1":"state1", "2":"state2", "3":"state3", "4":"state4"}. Le dernier format de la façon dont a quelques avantages: vous pouvez par exemple utiliser « : », « ; » à l'intérieur des valeurs.

La fonction n'a pas de paramètres, mais vous pouvez obtenir la ligne actuelle sélectionnée avec une méthode comme coll getGridParam('selrow') et getCell(rowid,iCol) ou getCell(rowid,"state") la valeur actuelle de la colonne « état ».

Voir plus dans la description de la propriété value sur http : //www.trirand.com/jqgridwiki/doku.php id = wiki: common_rules # editoptions ). Probablement cela peut résoudre votre problème?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top