Frage

Vor einiger Zeit ich das Lernen von ExtJS Bibliothek gestartet und jetzt möchte ich folgendes schaffen mögen:

Es ist ein Browser-Fenster und es wird verticaly getrennt.
Auf der linken Seite ein TreePanel mit Verzeichnissen und Unterverzeichnissen gibt es (nur 2 Level tief).
Auf der rechten Seite gibt es einen Ausgang zum Inhalt des ausgewählten Unterverzeichnisses sein.

Ich habe den Schnittstelle Teil getan, aber ich weiß nicht, wie der Inhalt auf der rechten Seite, wenn Klicks Benutzer auf der linken Seite auf Unterverzeichnis zu ändern. Ich kann die Anfrage mit Ext.Ajax.request machen, aber ich weiß nicht, wie die Aktualisierung der Inhalte für die rechte Seite auslösen.

Durch die Art und Weise. Wie ich die linke Seite ist TreePanel und die rechte Seite ist GripPanel und sie sind in Ansichtsfenstern mit xtype mantioned:. ‚Panel‘, aber ich glaube nicht, dass dies für die Frage imoptant ist

Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Zum einen müssen Sie die Tatsache registrieren der Benutzer einen Knoten in der treepanel auswählt, kann dies über getan werden:

yourtreepanel.getSelectionModel().on('selectionchange', whattodonext);

Wo yourtreepanel 'ist der Name Ihres treepanel (wenn der treepanel einer Variablen zugewiesen wurde, sonst verwenden Ext.getCmp ( ‚yourtreepanel‘). GetSelecti ....) und ‚whattodonext‘ ist der Name der Funktion zu rufen, wenn der Benutzer wählt einen Knoten.

Die Funktion 'whattodonext' dann würde wie folgt aussehen:

    function whattodonext(){
        node=yourtreepanel.selModel.selNode;
        if(node){
            if(node.isLeaf()){
// this works out what you want to do if the user has selected a valid leaf node


            }else{
// otherwise...put anything you wish to happen here (i.e. if a folder has been selected)

            }

        }   
    }

Der nächste Teil ist das Panel auf der rechten Seite mit Inhalt zu aktualisieren (wenn es mycontentpanel "genannt wurden). Sagen Sie diesen Inhalt sollte von ‚mycontent.html‘ im Abschnitt mit

geladen werden
// this works out what you want to do if the user has selected a valid leaf node

Sie würden den Code setzen:

mycontentpanel.load({
url: 'mycontent.html',
params: {
yourparam1:'param1value',
yourparam2:'param2value'
},
nocache: true,
timeout: 30
});

Und das ist es!

Sie können die params Optionen verwenden, um alle spezifischen POST-Parameter senden Sie haben können, welche entscheiden, welche Inhalte serviert wird.

Und vergessen Sie nicht, wenn Sie in Schwierigkeiten geraten, versuchen Sie Referenzierung Ihre Objekte mit Ext.getCmp ( ‚objektname‘) anstatt nur ‚objectname'.operation ....

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top