2017-07-04 4 views
0

Ich benötige Hilfe beim Anwenden allgemeiner Dropdown-Werte auf mehrere ausgewählte Zeilen in einer Webix-Datentabelle. Angenommen, ich möchte alle Zeilen meiner Datentabelle (mit Strg + Klick) auswählen, für die die Spalte "Name" den Wert "Markieren" hat, und dann eine gemeinsame Farbe für sie verwenden (z. B. grün), indem Sie auf so klicken dass es auf alle Zeilen auf einmal angewendet wird.Wie man einen gemeinsamen Dropdown-Wert auf mehrere ausgewählte Zeilen in einer Webix-Datentabelle anwendet

Das Snippet ist hier: https://webix.com/snippet/1162ccd1

Jede Hilfe, wie kann dies würde geschätzt erreicht werden.

Vielen Dank im Voraus.

Weitere zu diesem Beitrag, ich bin auch eine erneute formuliert und eine halbwegs Lösung unten für die Experten keine Verwirrung über die Anforderung zu zerstreuen:

Es muss nicht unbedingt die Zeilen sein, die 'haben Nennen Sie 'als' Mark '. Ich habe es so ausgedrückt, um ein Beispiel zu geben. Grundsätzlich kann es sich um eine zufällig ausgewählte Zeile handeln, die entweder aufeinanderfolgend oder willkürlich ist und aus dem Dropdown der Spalte 'Farbe' einen gemeinsamen Wert auswählt (es könnte eine beliebige Farbe in diesem Dropdown sein), damit der Wert diesen Zellen zugewiesen wird dieser ausgewählten Zeilen. Hinweis: Wenn Sie eine Farbe auswählen, sollte die Farbe der Zeile nicht geändert werden. Daher gibt es hier keinen CSS-Effekt.

Ich habe bisher den Code wie unten geschrieben, der die ausgewählten Zeilen abrufen kann.

rows = $$("mytable").getSelectedId(true); 

for (i in rows) { 
    id = rows[i]; 
    item = $$("mytable").getItem(id); 

    /* below effect has to happen from the drop down of data table gui */ 
    item.id2 = "green"; //for example, it could be any value 
    } 

Kann jemand bitte helfen Sie mir in:

i) Wie kann ich den Wert aus der Drop-Down-Tabelle auf alle ausgewählten Datenzeilen ausgewählt gelten?

ii) Zweitens, wie kann ich diesen Code auslösen (durch welches Ereignis?), Sobald sie in der Datentabelle ausgewählt sind und der Wert aus der Dropdown-Liste ausgewählt wird?

Danke.

Antwort

1

Sie können durch Hinzufügen des onBeforeFilter Ereignis so etwas tun, und nur Farbfilter verfolgen („ID2“ in Ihrem Snippet):

onBeforeFilter: function(id, value, config) { 
     if (id === "id2") { 
     const selected = this.getSelectedId(true); 
     const color = this.getFilter("id2").value; 
     for (let row in selected) { 
      const item = this.getItem(selected[row]); 
      item["id2"] = color; 
      this.updateItem(item.id, item); 
     } 
     } 
    } 

Probe ist hier https://webix.com/snippet/538e1ca0

Aber ich denke, das ist nicht der beste Weg.

Sie können auch ein Kontextmenü erstellen, das angezeigt wird, indem Sie mit der rechten Maustaste auf die Tabelle klicken und darin Werte auswählen.

Verwandte Themen