2016-05-13 12 views
0

Ich stehe vor einem Problem, wo der Header-Text einer Spalte in ExtJS 4.x als Javascript-Code behandelt wird und ausgeführt wird. In meiner Anwendung -ExtJS Header-Text als JavaScript-Code behandelt

  1. Ich habe einen Bildschirm, mit dem ich Header für meine Grid festlegen kann.
  2. Ich habe einen anderen Bildschirm mit einem Ext.grid.Panel, das mit dem Header-Name (Text) in Schritt # 1 erstellt wird.

var Col = { 
 
    "text": columnLabel, 
 
    "name": "c" + columnNumber, 
 
    "width": 200, 
 
    "flex": 1, 
 
    "minWidth": 200, 
 
    "type": type, 
 
    "sortable": true, 
 
    "position": i, 
 
    "index": "c" + columnNumber, 
 
    "hidden": false 
 
};

Also, wenn ich die Header-Namen in Schritt # Satz 1 wie - Datum dann auf dem zweiten Bildschirm sehe ich den Bildschirm mit Kopf Funktion Date() {[ systemeigener Code]}.

enter image description here

Außerdem, wenn ich die Header-Namen in Schritt # 1 wie alert ("Hallo") gesetzt dann der Kopftext angezeigt und eine Alarm-Box erscheint (was ich natürlich don Ich will nicht).

Können Sie mir bitte helfen, dieses Problem zu lösen. Wie kann ich den JavaScript-Code als Header-Text verhindern?

Vielen Dank im Voraus!

+0

Wie wird der Titel für das zweite Panel eingestellt? – LightNight

+0

Fragen zur Fehlersuche ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein bestimmtes Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels. – Alexander

Antwort

0

Ich löste dieses Problem, indem ich den Wert von header-text explizit als String umwandelte. Gehen Sie zugewiesen dieses I Text Eigentum der Spalte als -

text = "\"" + columnLabel + "\""

Also, meine Spaltendefinition wie folgt aussieht -

var Col = { 
 
    "text": "\"" + columnLabel "\"", 
 
    "name": "c" + columnNumber, 
 
    "width": 200, 
 
    "flex": 1, 
 
    "minWidth": 200, 
 
    "type": type, 
 
    "sortable": true, 
 
    "position": i, 
 
    "index": "c" + columnNumber, 
 
    "hidden": false 
 
};

Mit dieser Änderung nicht egal was der Wert von 'columnLabel' ist (kann Datum oder Alarm sein ('Hallo'); es wird b Wird nur als String behandelt und nicht als Javascript-Code vom Browser)

Verwandte Themen