2016-03-21 5 views
0

Ich bin neu bei ExtJS und versuche mich zurechtzufinden. Ich mache gerade einen POC und stehe irgendwann fest.ExtJS: Master Detailraster mit demselben Speicher

Ich versuche, eine Master-Detailseite mit einem Raster im Master und einer Reihe von Registerkarten im Detail jeweils mit einem Formular oder Raster zu erstellen. Nach Auswahl eines Datensatzes aus dem übergeordneten Raster sollte ein detailliertes Raster ausgefüllt werden. Der Catch ist, ich möchte den gleichen Speicher für beide Grids (Master & Detail) verwenden, weil ich in der Lage sein möchte, Änderungen vorzunehmen (mater-Zeilen hinzufügen, Detailzeilen hinzufügen, Zeilen usw. entfernen) und dann diese Änderungen als Batch speichern . Ist es überhaupt möglich? wenn ja, wie soll ich es erreichen? Muss ich den gleichen Laden verwenden oder kann ich die Stapelbearbeitung auf andere Weise durchführen?

Bisher habe ich versucht, aktuell ausgewählte Zeile Ansichtsmodell zu binden (gemäß dieser question) und versucht, die folgende Daten detaillierte Raster

   bind: { 
        data: { 
         bindTo: '{selection.Details}', 
         deep: true 
        } 
       } 

Jede Hilfe zu binden?

Update 1:

In meinem Speicher sind meine Daten in folgendem Format (daher der gleiche Speicher für Master-Detail)

items: 
     [ 
      { 
       Name: "ABC", 
       Details:[ 
         { 
          detail1: 'asdf', 
          detail2:'qwerty' 
         } 
         ] 
      } 
     ] 

Update 2:

Bitte sehen Sie sich das folgende Bild an. What I want to achieve using extjs

Dies ist, was ich versuche zu erreichen. Ich möchte Store für Master-Detaildaten verwenden. Ist es möglich? wenn ja, wie?

aktualisieren 3

ich geschaffen habe ein fiddle weiter zu klären, was ich für

+0

Es gibt ein Beispiel hier: http://examples.sencha.com/extjs/6.0.1/examples/kitchensink/#binding-child-session, aber ich weiß nicht, was Sie mit "Ich will den gleichen Laden zu benutzen ". Wenn es sich um den gleichen Laden handelt, wie sieht es dann in der Detailansicht aus? –

+0

@EvanTrimboli. Ich habe meine Frage aktualisiert. –

+0

Sie können den Store zwischen Ansichten innerhalb der Masteransicht übergeben oder aus dem StoreManager abrufen. seit du nur ein Stück Code gabst, kann ich nicht auf die richtige Weise empfehlen – aviram83

Antwort

2

bin fragen nach Ihren Geige ich eine Lösung hinzugefügt haben here

Wenn Sie bei sencha suchen docs Sie kann sehen:

Die erste Reihe von Daten für die t gelten pl, um den Inhaltsbereich der Komponente zu aktualisieren.

so verbindlich an Daten ein dynamischer Wert wird nicht funktionieren.

+0

Danke.Es hilft –

+0

Wenn ich Datensätze aus dem Detailraster hinzufüge und entferne, wird die Änderung nicht im Hauptspeicher registriert, was bedeutet, dass beim Synchronisieren des Hauptspeichers keine Ajax-Anforderungen ausgelöst werden. Irgendeine Idee? Ich habe versucht, die ausgewählte Zeile als schmutzig zu markieren, aber die Nutzlast zum Server enthält die ursprünglichen Detaildatensätze und nicht die aktualisierten –

+0

da Sie auf verschiedenen Speicher arbeiten, sind sie nicht sync, was Sie versuchen können, zu tun ist, wenn Sie Datensatz hinzufügen (catch add/Ereignis entfernen) zum Hauptspeicher gehen und einen Datensatz zum ausgewählten hinzufügen. – aviram83