2016-07-20 11 views
0

Ich versuche, ein Kontrollkästchen auszublenden/anzuzeigen, nachdem das erste in SmartFilterBar in SAPUI5 ausgewählt wurde. Es sollte eine Änderung der Eigenschaft sein, aber ich kann den richtigen Code nicht herausfinden. Dies ist Code in meinem XML innerhalb SmartFilterBar:Wie man Checkbox in SmartFilterBar ein-/ausblenden

<smartFilterBar:ControlConfiguration key="checkbox1" label="{i18n>Processingwithoutdialog}" visibleInAdvancedArea="true" > 
<smartFilterBar:customControl> 
<CheckBox /> 
</smartFilterBar:customControl> 
</smartFilterBar:ControlConfiguration> 
<smartFilterBar:ControlConfiguration key="checkbox4" label="{i18n>Restrictedprotocol}" visibleInAdvancedArea="true"> 
<smartFilterBar:customControl> 
<CheckBox editable="false" select="onSelect"/> 
</smartFilterBar:customControl> 

Und mein Code in controller.js:

onSelect : function(oEvent) { 
    var oSmartTable = oEvent.getSource(); 
    var oSmartFilterBar = this.byId("smartFilterBar"); 
    if (oSmartFilterBar instanceof sap.ui.comp.smartfilterbar.SmartFilterBar) { 

    var oCustom = oSmartFilterBar.getControlByKey("checkbox1"); 
    var oCustom2 = oSmartFilterBar.getControlByKey("checkbox4"); 
    oCustom2.setEditable(!oCustom.getSelected()); 
    } 

Antwort

0

Nicht ganz sicher, was Sie versuchen, mit dieser Funktion zu erreichen, oder was

var oCustom = oSmartFilterBar.getControlByKey("checkbox1").getChecked; 

mit nennt es aber ich ein Problem sehen und dann

oCustom.onchange = function() { 
     oCustom2.editable = this.checked ? false : true; 
    } 

oCustom ist nicht die Steuerung, aber möglicherweise das Ergebnis eines Funktionsaufrufs fehlt es Klammer.

Also ich denke, Sie durch diese Änderung beginnen müssen:

var oCustom = oSmartFilterBar.getControlByKey("checkbox1") 

Dann können Sie Dinge des Steuer fragen, wie:

oCustom2.setEditable(!oCustom.getSelected()); 

Der Trick ist dann, wenn diese aufgerufen wird das onSelect-Ereignis, so dass Sie die attachSelect verwenden müssen, um die Funktion anzuhängen, oder wenn Sie das select-Ereignis in der XML-Datei festlegen können.

+0

Vielen Dank für Ihre Antwort. Ich denke, ich bin jetzt nahe dran. Ich befestige onAuswählen Funktion zum Kontrollkästchen. Es funktioniert aber nicht richtig. Ich möchte die Eigenschaft von editable = "false" auf editable = "true" von "checkbox4" setzen, wenn die Eigenschaft in "checkbox1" ausgewählt ist. Ein weiteres Problem besteht darin, dass der Benutzer das Kontrollkästchen "checkbox4" verlassen und erneut auf "checkbox1" klicken kann und beide Kontrollkästchen aktiviert sind, auch wenn das "checkbox4" nicht mehr bearbeitet werden kann. Ich habe den Code in meiner Frage geändert –