Aktion-nach render () - Methode abgeschlossen ist
Muss ich tun, einige Maßnahmen, wenn render()
- Methode seine Arbeit beendet und angehängt, die alle HTML-Elemente im DOM.
Wie Sie Sie abonnieren, um onRenderEnds
event (es gibt keinen solchen Fall)?
Kann ich das schreiben meiner eigenen Veranstaltung außerhalb slickgrid-code und befestigen Sie es an render()
Methode?
Gibt es einige Veranstaltungen "onScroll", "onViewportChanged"
aber Sie geschah vor render()
fertig (in einigen Fällen).
Update:
Ich Schreibe formatter for Spalte:
formatter: function(row, cell, value, columnDef, dataContext){
return "<div class='operationList' data-my='" + myData + "'></div>";
}
Beim raster gerendert (meine Anwendung formatter) ich müssen gehen durch alle ".operationList" divs
und konvertieren Sie Sie in andere Konstruktionen (basierend auf data-my
- Attribut). Ich brauche zu ersetzen ".operationList" divs
mit einer komplexen Struktur, mit event-Handlern.
- Was versuchen Sie zu tun?
- siehe meine Frage zu aktualisieren.
- Ich habe ein ähnliches problem, da ich möchte, zu Stil <select> - Elemente mit Hilfe der jQuery.selectBox() plugin. Ich weiß, dass ich könnte haben die formatter-Strahlen die entsprechenden HTML-und schreiben Sie den event-Handler selbst, aber da das plugin ist da und funktioniert einwandfrei würde ich das eher nicht. Was ich bräuchte ist der Aufruf $grid.find('select').selectBox() nach dem Rendern() abgeschlossen hat.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die grundsätzliche Antwort ist NICHT !
Was Sie vorschlagen, ist ein sehr schlechtes design und geht gegen die Prinzipien und die Architektur von SlickGrid.
Werden Sie am Ende tun eine Menge von redundanten arbeiten und negieren die meisten performance-Vorteile von SlickGrid. Das raster wird das erstellen und entfernen von Zeilen-DOM-Knoten auf die Fliegen, wie Sie Blättern und tun es entweder synchron, oder asynchron, abhängig davon, welche am besten zu der Zeit. Wenn Sie interaktive Inhalte in den Zellen, die Verwendung benutzerdefinierter Zellen-Renderer und delegieren alle event-handling auf grid-Ebene, über seine zur Verfügung gestellten Ereignisse wie onClick. Wenn der Inhalt der Zelle kann absolut nicht mit den renderer verwenden async-post-rendering - http://mleibman.github.com/SlickGrid/examples/example10-async-post-render.html. Auch so, die grid content sollten keine Ereignis-Listener registriert, die direkt auf den DOM-Knoten.
Adresse @magiconair Kommentar, sollten Sie wirklich nicht machen eine ganze WÄHLEN Sie mit all seinen Optionen und Ereignis-Handlern, bis eine Zelle wechselt in den edit-Modus.
Antwort auf meinen eigenen Kommentar, den ich habe kommen mit dem folgenden hack. Es kann nicht sein, hübsch, aber es scheint zu funktionieren.
Fügen Sie die folgende Zeile, um die
render()
Methode nur unterrenderRows(rendered);
Fügen Sie einen neuen event-handler, um die öffentliche API:
Binden, um das neue Ereignis in Ihrem code: