Ich habe zwei Comboboxen und ich möchte die Combox (b) basierend auf dem ausgewählten Wert von Combobox A deaktiviert werden (ich sollte auf seine Speicherdaten suchen Sie die Datensätze suchen und Wenn der Records-Parameter (arsubOpen) einen Wert 1 enthält, sollte nur I die Combobox B) aktivieren. Dazu habe ich einen ähnlichen Speicher wie A hinzugefügt und einen Filter hinzugefügt, um die Datensätze zu filtern, die nur arsubOpen 1 enthalten. Nun, wie kann ich ihnen ermöglichen, sie basierend auf diesen Speicherdatensätzen zu aktivieren.Wie man eine Komponente basierend auf ViewModel speichern returnd Daten extjs
0
A
Antwort
0
Sie können change
Ereignis hören und den neuen Wert mit einem beliebigen Wert Sie die zweite Combobox aktivieren möchten vergleichen:
{
xtype: 'combobox',
anchor: '100%',
displayField: 'description',
valueField: 'adjustmentTypeId',
fieldLabel: 'A',
// lastQuery: '' to disable store loading a second time on trigger click
lastQuery: '',
bind: {
store: '{a}'
},
listeners: {
change: function(combo, value) {
// Logging a value to console - remove this code
console.log(value);
var store = combo.getStore();
var record = store.findRecord(combo.valueField, value)
var arsubOpen = record.get('arsubOpen');
// Condition for enabling here
var shouldEnable = arsubOpen === 1;
var form = combo.up('form');
var basicForm = form.getForm();
// 'bField' si the name of the B combobox field
var bCombo = basicForm.findField('bField');
bCombo.setDisabled(!shouldEnable);
}
}
},
{
xtype: 'combobox',
anchor: '100%',
// Field name to use for form submitting and finding the field
name: 'bField',
displayField: 'description',
valueField: 'arOnlySubCategoryId',
fieldLabel: 'B',
// lastQuery: '' to disable store loading a second time on trigger click
lastQuery: '',
bind: {
disabled: 'disableB',
store: '{B}'
}
}
A fiddle auf eigene Faust basiert.
Ich warf in lastQuery: ''
Konfiguration, um den Laden ein zweites Mal auf den Auslöser klicken zu deaktivieren, was wirklich nervig sein kann und nahm mir eine Menge Stunden, um eine Lösung zu finden.
Verwandte Themen
- 1. Wie aktualisiert man eine GridView in Extjs?
- 2. Wie überschreiben extJs Controller-Komponente
- 3. wie eine Komponente in extjs basierend auf Funkfeld aktivieren/deaktivieren auswählen
- 4. Erste Komponente in ExtJS
- 5. ExtJS tiefe Datenbindung
- 6. ExtJS Element zu Komponente
- 7. Wie filtert man eine Abfrage basierend auf einem JSONB-Daten?
- 8. ExtJS 6 Gitterauswahl an das viewModel binden
- 9. Wie man einfache Extjs 6 Komponente in HTML zeigt?
- 10. Eine Komponente mehrere Vorlagen basierend auf Bedingung
- 11. Grids mit Store und Viewmodel in Extjs-5.1.2
- 12. Dynamisch Aktualisierung von HTML basierend auf Viewmodel
- 13. Wie man eine Klasse basierend auf einer von Laravel über eine Vuejs-Komponente übergebenen Variable umschaltet
- 14. ExtJS und Komplexe speichern Operationen
- 15. Dynamisch konstruierte Knockout-Komponente Vorlage basierend auf Komponente Params
- 16. Wie man Daten aus bigquery basierend auf einigen Filterkriterien exportiert
- 17. ExtJS Ansichtsmodell Typ
- 18. Wie man eine statische Nachricht hinzufügt ExtJS
- 19. Extjs wie dekodiert man eine JSON-Zeichenkette?
- 20. Wie exakter Matched-Wert von ExtJS speichern
- 21. Wie man eine zusammenklappbare Sidebar mit Tabpanel in ExtJs 6
- 22. React: Wie aktualisiert man eine Komponente basierend auf einer Eigenschaft und nicht auf allen?
- 23. Wie erstellt man eine Datei basierend auf Datenbankdaten in Python?
- 24. Oraclejet-Ojtimeline-Komponente an ViewModel binden
- 25. Wie füttert man Daten in eine dynamische Komponente?
- 26. Laden Daten in Komponente basierend auf Route in reagieren
- 27. Wie teilt man Daten basierend auf ID auf?
- 28. Conditionally inline style eine react-Komponente basierend auf prop
- 29. wie anhängen/ein Kind auf den extjs Pfadwert basierend einfügen
- 30. Wie man eine Vue-Komponente in eine Vue-Komponente "importiert"
Danke marathy aber der Schlüssel hier ist zu aktivieren und zu deaktivieren, basierend auf dem anderen Parameter im gleichen Datensatz. Bsp .: \t "arsubOpen": "0" {"adjustmentTypeId": 7, "type": "M", "rechnungsart": "M", "description": "Verschiedenes", "createUserId": "9", " createDateTime ": 1412711611023," updateUserId ":" 21 "," updateDateTime ": 1475603316810," Rechnungscode ":" MS "," categoryCode ":" MS "," aktiv ": true," arsubOpen ":" 0 "} ist der Rekord für Verschiedenes. Also muss ich diesen Datensatz überprüfen und sehen, ob "arsubOpen" 0 oder 1 ist, wenn es 1 ist, muss ich B aktivieren – Sweety
Verwenden Sie die Combobox für etwas anderes? Wenn nicht, können Sie einfach sein 'valueField' als' arsubOpen' definieren. Wenn ja, können Sie 'var record = combo.getStore(). FindRecord (combo.valueField, value)' verwenden. – MarthyM
Ich war im Begriff, denselben Dank zu posten Marthy – Sweety