Escape-Markup in JSON-gesteuerter jQuery-Datentabelle?

8

Ich verwende eine jquery-Datentabelle , die JSON dynamisch mit der sAjaxSource -Eigenschaft lädt. Alles ist in Ordnung, außer dass der geladene Inhalt als potenzielles Markup behandelt wird, so dass Dinge merkwürdig werden, wenn Text in Zellen < oder sowas enthält.

Wie kann ich Datentabellen dazu bringen, aus meinen Daten zu entkommen, bevor sie in die Tabelle geladen werden? Ich möchte es nicht serverseitig machen, weil es dem Server egal ist, was der Client mit den Daten machen wird.

    
kdt 12.10.2011, 13:08
quelle

2 Antworten

3

[Hinweis: Die folgende Antwort gilt für DataTables 1.9x und darunter. 1.10 hat die Namenskonventionen der Methoden und einige andere Dinge geändert. 1.9x Methoden sind verfügbar, aber veraltet und werden unweigerlich komplett entfernt.]

Wenn es sicher ist, sie "Großhandel" zu streichen (dh wenn Sie eine Escape-String-Funktion entwickeln, die die Gültigkeit von JSON nicht beeinflusst), können Sie dies tun, indem Sie die Funktion fnServerData verwenden:

%Vor%

Wenn Sie sich nicht sicher sind, ob Sie die Änderungen im Großhandel ändern können, können Sie dies Zeile für Zeile mit dem Befehl fnRowCallback tun:

%Vor%

In diesem Beispiel modifiziere ich nur die erste Zelle. Wenn es für alle Zellen gilt, möchten Sie wahrscheinlich einen Iterator schreiben, der die gesamte Zeile durchläuft, um die Konvertierung durchzuführen. Wenn es nur für einige Zellen gilt, können Sie sie einzeln behandeln.

Beachten Sie, dass aData [0] und td: eq (0) nur zufällig denselben Index (0) haben. Wenn Sie versteckte Spalten haben, wird es nicht unbedingt eine Übereinstimmung geben. Wenn Sie mDataProp verwenden, müssen Sie das ebenfalls handhaben.

    
Greg Pettit 13.10.2011, 16:08
quelle
2

Hier sind ein paar einfache Bits:

%Vor%     
SiggyTheViking 12.10.2011 13:15
quelle

Tags und Links