jQGrid, wie Sie eine Spalte im Dialogfeld zum Hinzufügen bearbeiten können, aber nicht während der (Inline-) Bearbeitung

8

Ich habe ein jQGrid mit einer Spalte, die nur beim Hinzufügen einer neuen Zeile editierbar sein soll.

Ich habe Beispiele dafür gesehen, wie das gemacht wird, wenn Änderungen und Ergänzungen in einem Dialog stattfinden, aber gibt es eine Möglichkeit, dies mit der Inline-Bearbeitung zu tun?

Ich habe versucht, grid.setColProp () in beforeShowForm: zu verwenden, aber dies funktioniert nicht (die Spalte bleibt schreibgeschützt und ist im Dialogfeld zum Hinzufügen nicht vorhanden).

Beispiel für dialogbasierte Spalten aktivieren / deaktivieren:
Ссылка

    
David 29.11.2010, 19:13
quelle

1 Antwort

18

Weil Sie das Beispiel aus meinen alten Antworten verwenden ( und dies ) Ich fühle, dass ich auch auf Ihre Frage antworten sollte.

Im alten Beispiel sind alle Felder, die während der Hinzufügen- oder Bearbeiten-Dialoge geändert werden können, Hat die Eigenschaft editable:true . Die Felder, die nur im Add-Dialog angezeigt werden sollen, werden innerhalb von beforeShowForm Ereignishandle. Auf die gleiche Weise können wir temporär einige Felder vor dem Aufruf der editRow-Methode auf editable:false setzen und unmittelbar nach dem Aufruf wieder auf editable:true zurücksetzen:

%Vor%

Sie können dies live hier sehen.

UPDATE: Free jqGrid ermöglicht die Definition von editable als Callback-Funktion. Siehe im Wiki-Artikel . Es ermöglicht, die Spalte in einigen Zeilen editierbar zu machen und nicht editierbar für andere Zeilen.

    
Oleg 29.11.2010, 21:15
quelle

Tags und Links