2010-07-19 13 views
5

Wenn eine jqGrid-Zelle editierbar ist, wird sie standardmäßig durch Klicken auf diese Zelle in den Bearbeitungsmodus geändert. Gibt es eine Möglichkeit, dass ich es stattdessen mit einem Doppelklick bearbeiten kann? Es würde das Ausführen von Operationen auf Zeilenebene, z. B. Löschen, vereinfachen, da alle Spalten in meinem Raster bearbeitet werden können.jqGrid Cell Editing - Doppelklick zum Bearbeiten?

Antwort

7

Ja, Sie können das Ereignis ondblClickRow verwenden, um einen Doppelklick zu erfassen.

Hier ist ein einfaches Beispiel für den Einstieg:

ondblClickRow: function(){ 
    var row_id = $("#grid").getGridParam('selrow'); 
    jQuery('#grid').editRow(row_id, true); 
} 
+0

Danke, aber das ist nicht ganz das, was ich im Sinn hatte. Wenn man sich diesen Code anschaut, sieht es so aus, als würde das Formular zum Bearbeiten des Inhalts einer ganzen Zeile geöffnet, während ich eine einzelne Zelle inline bearbeiten möchte. Wie würde ich die Bearbeitung der Zelle mit einem einzigen Klick deaktivieren und gleichzeitig die Möglichkeit behalten, die Zeile mit einem einzigen Klick auszuwählen? – Kyle

+0

'editRow' ist für die Inline-Bearbeitung gedacht, nicht für die Bearbeitung von Formularen. Außerdem musste ich in meinem Grid explizit 'editRow' aus dem 'onSelectRow'-Event aufrufen, um die Bearbeitung per Einfachklick zu ermöglichen. Wenn Sie diesen Code einfach entfernen, haben Sie den Einzelklick deaktiviert. Denken Sie daran, dass ein Doppelklick zum Bearbeiten für Ihre Benutzer möglicherweise nicht intuitiv ist ... –

+0

Meinen Sie, dass Sie den Code aus dem jqGrid-Code selbst entfernt haben? Vielleicht haben Sie auch Recht, aber ich glaube nicht, dass sogar ein einziger Klick auf Text zum Bearbeiten intuitiv ist. Zumindest in Apps wie Excel erfordert das Bearbeiten einer Zelle einen Doppelklick, also ist es nicht ohne Präzedenzfall. Gedanken? – Kyle

2

ich die Antwort bekam. Sie müssen nur den Code auf den jqGrid Eigenschaften Zum Beispiel setzen:

width: 800, 
     height: 200, 
     caption:"   .:: Captura de Datos ::.", 
     addedrow: "last", 
     ondblClickRow: function (rowid, iRow,iCol) { 
      alert('Doble Click'); 
      //jQuery("#TBLReporte").editCell(iRow, iCol, true); 
     }