2010-11-29 32 views
8

J'ai un jQGrid avec une colonne que je veux seulement être modifiable quand j'ajoute une nouvelle ligne.jQGrid, comment rendre une colonne modifiable dans la boîte de dialogue d'ajout mais pas pendant les éditions (en ligne)

J'ai vu des exemples de la façon de procéder lorsque des modifications et des ajouts sont effectués dans une boîte de dialogue, mais y a-t-il un moyen de le faire avec l'édition en ligne?

J'ai essayé d'utiliser grid.setColProp() dans beforeShowForm:, mais cela ne fonctionne pas (la colonne reste en lecture seule et n'est pas présente dans la boîte de dialogue d'ajout).

Exemple de colonne à base de dialogue activer/désactiver:
http://www.ok-soft-gmbh.com/jqGrid/CustomFormEdit.htm

Répondre

18

Parce que vous utilisez l'exemple de mes vieilles réponses (this et this) Je sens que je dois répondre également à votre question.

Dans les champs old example, tous les champs pouvant être modifiés lors de l'ajout ou de la modification de boîtes de dialogue ont la propriété editable:true. Les champs qui doivent être affichés uniquement dans la boîte de dialogue Ajouter seront masqués à l'intérieur du handle d'événement beforeShowForm. De la même manière, nous pouvons temporaires switch certains champs à editable:false avant l'appel de la méthode EditRow et réinitialisé à la editable:true immédiatement après l'appel:

onSelectRow: function(id) { 
    if (id && id !== lastSel) { 
     grid.jqGrid('restoreRow',lastSel); 
     var cm = grid.jqGrid('getColProp','Name'); 
     cm.editable = false; 
     grid.jqGrid('editRow', id, true, null, null, 'clientArray'); 
     cm.editable = true; 
     lastSel = id; 
    } 
} 

Vous pouvez voir cette here en direct.

MISE À JOUR:Free jqGrid permet de définir editable comme fonction de rappel. Voir the wiki article. Cela permet de rendre la colonne modifiable sur certaines lignes et non modifiable pour les autres lignes.

+0

Exceptionnel, merci pour votre aide Oleg! – David

+0

@ user524257: Bienvenue! – Oleg

+0

Super! Avez-vous des billets de blog, des publications ou d'autres réponses de pile sur jQGrid? –