2017-04-20 4 views
2

Ich benutze freie jqgrid 4.14 und ich muss ein benutzerdefiniertes Bild (irgendeine Art von Mail-Symbol) in meinem Raster und wenn das Bild angeklickt wird, sollte es ein modales Fenster mit einem Formular öffnen und Das hat die Daten der angeklickte Zeile im Nachrichtenfeld des Formulars und hat auch andere Felder wie Absender-E-Mail-ID, Empfänger-E-Mail-ID und auch ein Thema.Zeilendaten für benutzerdefinierte Schaltfläche klicken

So konnte ich ein benutzerdefiniertes Bild in meinem Raster haben. Jetzt haben wir onSelectRow Eigenschaft, mit der wir die ID der angeklickten Zeile erhalten können, und wir haben getRowData, die die Daten der Spalten geben wird.

So habe ich geändert onSelectRow ein bisschen wie dieses

onSelectRow: function(id){ 
      if(id && id!==lastSel){ 
       jQuery(this).restoreRow(lastSel); 
       lastSel=id; 
       var rowId = $(this).getRowData(lastSel); 
      } 
      jQuery(this).editRow(id, true); 
     } 

Nun, dies werden die Daten jeder Zeile geben, wenn es angeklickt wird. Aber wie bekomme ich dieselbe Funktionalität, wenn ich auf mein benutzerdefiniertes Bild klicke?

EDIT: Ich brauche so etwas wie this-

http://www.ok-soft-gmbh.com/jqGrid/Admin3.htm

Aber hier habe ich nicht in der Lage bin, das Bild wie hier es

+0

Bitte legen Sie ein minimales Beispiel im Code-Schnipsel, wenn Sie können. – Iceman

+0

@Iceman bitte überprüfen Sie jetzt – shv22

Antwort

0

Es gibt viele Möglichkeiten, um die Anforderung zu implementieren sind zu finden zu finden. Eine von der einfachsten, die ich in the answer beschrieben habe. Sie können die Spalte mit formatter: "actions"

{ 
    name: "act", template: "actions", width: 25, 
    formatoptions: { editbutton: false, delbutton: false } 
} 

und der jqGrid Option hinzufügen, die

zusätzliche benutzerdefinierte Schaltflächen festlegen
actionsNavOptions: { 
    mailicon: "fa-envelope-o", 
    custom: [ 
     { 
      action: "mail", 
      position: "first", 
      onClick: function (options) { 
       alert("Mail for rowid=" + options.rowid); 
      } 
     } 
    ] 
} 

Siehe https://jsfiddle.net/OlegKi/3tuxg71z/

+0

danke für die Antwort Ich versuchte Ihre Lösung gab es zwei grundlegende Problem die Spalte, die ich dieses Mail-Symbol anwenden sollte nicht in allen Zeilen nur ausgewählte Zeilen, wie ich tun kann, dass auch die Warnung kommt nur Wenn wir zweimal klicken ... können wir nur mit einem Klick alarmieren? – shv22

+0

eine weitere Sache für Mef A-Umschlag-O-Bild kommt auch nicht, was benutzerdefinierte Bild es nicht nimmt, stattdessen kommt es wie ein Pfeil nach oben Symbol – shv22

+0

@ shv22: Testen Sie meine Demo https://jsfiddle.net/OlegKi/3tuxg71z /. Die Warnung erscheint ** alle ** klicken auf das Mail-Symbol. Bitte lesen Sie den Text Ihrer Frage erneut. Hast du etwas über 'multiselect: true' geschrieben? Nächstes: Ich habe die Demo für Sie erstellt. Wenn Sie ein Problem haben, das Sie selbst nicht lösen können, sollten Sie meine Demo bis zu dem Ort ändern, an dem Sie Probleme haben. Ich muss meinen Hauptjob machen und versuchen, anderen auf dem Stackoverflow in Pausen in meinem Hauptjob oder in meiner Freizeit zu helfen. Denke daran, auch meine Zeit zu sparen und maximal das zu tun, was du selbst tun kannst. – Oleg

Verwandte Themen